第2講 変数
第8話 参照について
皆さんに質問です。
第4話のコード
#include<iostream> //c++プログラミングをはじめるためのお呪い。
#include<string> //文字列型変数を使うために組み込んでいる。
using namespace std; //c++プログラミングをはじめるためのお呪い。
int main() {
cout << "はじめてのC++プログラミング体験" << endl;
cout << "まず変数から学ぼう!" << endl;
int a; //整数を入れる箱aを用意
a = 2; //整数を入れる箱に2を入れた。
cout << "a=" << a << endl; //箱aの中身を表示
string b; //文字列を入れる箱bを用意
b = "私は文字列を入れる変数です。";
cout << "b=" << b << endl; //箱bの中身を表示
float c; //小数を入れる箱を用意
c = 3.14; //小数を入れる箱に3.14を入れた。
cout << "c=" << c << endl; //箱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です。
箱そのものなのか箱の中身なのか、
ここを常に意識する必要があります。
箱の中身を見ることを参照あるいは値参照といいます。
つまり、同じ変数が使われているときでも、
箱そのものである場合と中の値である場合があるわけです。
この話はポインタや関数の引数・戻り値などを理解するときにとても大切なことです。
頭の片隅に入れておいてください。
では、いよいよ第3講で繰り返し処理for文を学びましょう。