#変数の捉え方
test.cpp
int a = 100;
普通に読むと
int型の変数aを定義し、その変数aに100を代入している。
具体的なイメージ
aという名前の箱に100円玉を入れた。
test.cpp
int a = 100;
int b = 100;
if ( a == b )
{
CCLOG("aとbは等しい");
} else {
CCLOG("aとbは違う");
}
実行結果
aとbは等しい
#考察
a == b つまり aとbは等しい。
aとbは違う箱なので箱としては別物であるはず。
しかし、実行結果は等しい。
プログラム上で表しているのは、変数aの値と変数bの値であることに気づく。
aとbは変数としては別物だけど、それぞれが保持している値は共に100である。
#アドレス
プログラム上では「変数としては別物」を、__変数のアドレス__を使って区別する。
変数名の先頭に&(アンパサンド)をつけることで、変数の格納アドレスを表す。
test.cpp
int a = 100;
int b = 100;
CCLOG("変数aのアドレス:%p",&a);
CCLOG("変数bのアドレス:%p",&b);
if ( &a == &b )
{
CCLOG("aとbは等しいい");
} else {
CCLOG("aとbは違う");
}
実行結果
cocos2d: 変数aのアドレス:0x16fd4922c
cocos2d: 変数bのアドレス:0x16fd49228
cocos2d: aとbは違う
変数aとbは値が同じてあるが、箱としては別物ということがアドレスで判断できる。
#まとめ
test.cpp
int a = 100;
このプログラムでわかること。
変数の型: int型
変数の名前: a(変数の値を表す)
変数の値: 100
変数の場所: &a
変数の長さ: 4バイト