2007年7月31日火曜日

アドレスを表示する

printfで書式として%pを指定すれば、変数のアドレスを表示することができる。

char *p = "Hello, World";

printf( "%p\n", p);



まだプログラム初心者の子から質問を投げかけられた。
こういったサンプルコードが書かれている書籍を読んで勉強中だ。
そこに書かれているコードとともに実行結果が書いてあるのだが、
コードを打ち込んで、実行したら結果が同じにならないというわけだ。

プログラムは、ファイルとしてハードディスク上に存在する。
プログラムを実行するということは、
シェル上からコマンドを打ち込んで、エンターキーを押したとき、
その実行ファイルがメモリ上にロードされる。
"Hello, World"という文字列リテラルは、メモリ上のどこかに配置される。
そのとき、配置する場所は環境によって変わる。
したがって、環境が異なれば、違って当然である。

0 件のコメント: