プログラム例 6.3 の後半 (P.156)

P.156の最後のプログラムは, いっそこんなふうにしてみましょう.
main()
{
  int *a;
  int n;
  printf("address? ");
  scanf("%d", &n);
  a = n;
  printf("*%d = %d\n", a, *a);
}
そのこころは, 何か一つ番地を読み込んで, その番地の内容を 印刷するというものです.

このプログラムをコンパイルすると,

6.3.c:7: warning: assignment makes pointer from integer without a cast
のような警告メッセージが表示されます. これは, 「ポインタ型の変数に整数型を代入していて, 型が一致してないよ」 という意味なのですが, ここではまさにそれをやろうとしているわけで, 無視してかまいません. (実行ファイルはちゃんとできています. これが「エラー」と「警告」の違い)

次のような番地を入力して, 動作を眺めてみて下さい:


prev index next