2021年12月28日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 1240 count

代入演算子(=演算子): 変数は出たり入ったり大忙し

Written By: 川俣 晶連絡先

この章のテーマ §

 代入演算子(=演算子)について学びます。

前提知識 §

Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, 配列, int型

解説 §

 代入演算子(=演算子)は変数等に値または参照を格納します。

 必ず覚えて頂きたいことは2つあります。

 1つめは、代入演算子の右側は左辺値と呼ばれ、自由な式を書くことができないことです。たとえば、1という数値は書き換えることができません。左辺値にはなれません。変数aなら左辺値にできます。変数は書き換えられるからです。

 2つめは、値型は値を代入するが、参照型は参照を代入することです。参照とは、住所のようなもので、そのオブジェクトの場所を覚えておくだけの情報です。ですから、その場所のオブジェクトの中味が改訂されれば、参照が同じでも取得する値は改訂後の値になります。値型なら値のコピーが作られるので、いくらもとのデータを改訂しても、改訂前の複製が残るだけです。

 サンプルソースの場合、配列は参照型ですが、配列のメンバーの数値は値型です。ですから、配列そのもの(参照)を代入した場合と、配列のメンバー(値)を代入した場合では挙動が変わります。

罠の数々 §

  • 一致を比較する演算子==と、代入演算子=は別物である。機能は全く似ていないので混同しないこと
  • 変数宣言で初期値を指定する=と、代入演算子=は別物である。かなり使い方は似ているが細部に異なる部分がある

参考リンク §

代入演算子 (C# リファレンス)

サンプルソース: assignmentOperator §

int[] array = new int[1];

array[0] = 123;

Console.WriteLine($"array[0]={array[0]}");

int x;

int[] y;

// 値型の代入

x = array[0];

// 参照型の代入

y = array;

Console.WriteLine("値の更新 (参照は更新しない)");

array[0] = 456;

Console.WriteLine($"array[0]={array[0]}");

Console.WriteLine($"x={x}");

Console.WriteLine($"y={y[0]}");

実行結果 §

array[0]=123

値の更新 (参照は更新しない)

array[0]=456

x=123

y=456

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 左辺値(代入演算子の左側にできるもの)として間違っているのはどれだろうか。

 ただし、aはint型の変数名。arrayはint型の一次元配列名とする。

  1. a
  2. array
  3. array[a]
  4. array[a+1]
  5. array[a]+1

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2021年
12月
29日
ボックス化とnull 許容値型、null 許容参照型: 型にまつわるハテナの嵐
3days 0 count
total 1583 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2021年
12月
27日
new演算子: オブジェクトを産み出し、新世界を切り開こう
3days 0 count
total 1111 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20211228091847
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.