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のような警告メッセージが表示されます. これは, 「ポインタ型の変数に整数型を代入していて, 型が一致してないよ」 という意味なのですが, ここではまさにそれをやろうとしているわけで, 無視してかまいません. (実行ファイルはちゃんとできています. これが「エラー」と「警告」の違い)
次のような番地を入力して, 動作を眺めてみて下さい: