第2講 変数
第8話 参照について
皆さんに質問です。
第4話のコード
//以下C#を始めるためのお呪い
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//以上C#を始めるためのお呪い
namespace a //初心者はお呪い=決まり事と思い一切気にしない
{
class Program //初心者はお呪い=決まり事と思い一切気にしない
{
static void Main(string[] args) //私は社長だ。
{
Console.WriteLine("初めてのC#プログラミング体験");
Console.WriteLine("まず変数から学ぼう!");
int a; //整数を入れる箱aを用意
a = 2; //整数を入れる箱に2を入れた。
Console.WriteLine("a={0:d}", a);
string b; //文字を入れる箱を用意
b = "私は文字列を入れる変数です。";
Console.WriteLine("b={0:d}", b);
float c; //小数を入れる箱を用意
c = 3.14f; //小数を入れる箱に3.14を入れた。
Console.WriteLine("c={0:f2}", c);
}
}
}
の色を付けた部分、
aとa
bとb
cとc
は同じものですか。
慧眼な方はこんな質問をするのだから、
きっと何か意味がある、
前話の参照の話と関連があるのだろう、
推測なさることでしょう。
そうなんです。
実は同じではないのです。
aは箱そのものであるのに対して、
aは箱の中に入っている数値2なのです。
基本的に=の左にあるときは、箱そのもの(変数そのもの)
であり、それ以外は箱の中に入っているものです。
ですから、前話の
a = 0;
a = a + 1;
a = a + 2;
a = a + 3;
のaも左辺にある場合には箱そのものであり、
右辺のaは箱の中身です。
ですから2行目の右辺のaは0、
3行目の右辺のaは1、
4行目の右辺のaは3です。
箱そのものなのか箱の中身なのか、
ここを常に意識する必要があります。
箱の中身を見ることを参照あるいは値参照といいます。
つまり、同じ変数が使われているときでも、
箱そのものである場合と中の値である場合があるわけです。
この話は関数の引数・戻り値などを理解するときにとても大切なことです。
頭の片隅に入れておいてください。
では、いよいよ第3講で繰り返し処理for文を学びましょう。