第2講 変数
第7話 参照について
皆さんに質問です。
第4話のコード
#include<stdio.h> //C言語プログラミングをはじめるためのお呪い。
int main() {
int a; //整数を入れる箱aを用意
char b; //文字を入れる箱bを用意
float c; //小数を入れる箱cを用意
printf("はじめてのC言語プログラミング体験\n");
printf("まず、変数から学ぼう!\n");
a = 2; //箱aに2を入れた
printf("%d\n", a); //箱aの中身を表示
b = 'a';
printf("%c\n", b); //箱bの中身を表示
c = 3.14;
printf("%f\n", c); //箱cの中身を表示
return(0); //mainを閉じるためのお呪い。
}
の色を付けた部分、
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です。
箱そのものなのか箱の中身なのか、
ここを常に意識する必要があります。
箱の中身を見ることを参照あるいは値参照といいます。
つまり、同じ変数が使われているときでも、
箱そのものである場合と中の値である場合があるわけです。
この話はポインタや関数の引数・戻り値などを理解するときにとても大切なことです。
頭の片隅に入れておいてください。