メモリ上のどの位置(番地 =アドレス)に変数を置くかは、"リンカ"が決める。
変数dataのアドレスを知りたい場合は、
printf("%p\n", &data);
とする。
ポインタとは、アドレスを格納できる変数。
ポインタ宣言方法
int *pt;
これを "「ポインタptの指すアドレスにある値」と分析的に考えるのでなく、"
「*pt」を 単純にint型の変数名として考えれば楽だそうだ。
「*pt」は、int型変数dataのように、表示, 計算ができる。
--
備考
配列があるとする。
int ary[10];
このとき、aryは、&ary[0]と同等であり、配列の先頭アドレスを示す。
ただし、"ary"へのアドレス代入することはできない。アドレス取得のみ。
--
参考書:新訂 新C言語入門
―――――――――――――――――――――――――――――――――
char hairetu[10];
char *phairetu = hairetu;
*phairetu = 'A';
*(phairetu +1) = 'B';
上と同じ意味で書けるらしい。(これをすると、phairetuがポインタで宣言されたかどうか分からなくなる
ような気かするが。。)
phairetu[0] = 'A';
phairetu[1] = 'B';