こんにちは。
C言語の教科書でアドレス演算子の項目で次のようなプログラミング例がありました。
C
1a=4; 2printf("%d\n", &a);
教科書では実行結果が
12345678(任意のメモリーアドレス)
になると書いてあります。
しかし実際にコンパイルすると、途中で
In function ‘main’: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=] printf("%d\n", &a); ~^ ~~ %ls
とwarningが出ます。
そこでdをlsに書き換えるとコンパイルは出来ましたが、実行結果は
(何もなし) ```でした。 更にdをpに書き換えてコンパイルすると
0x7ffdbad88464
この原因は何でしょうか? なお使用しているコンパイル環境は以下の通りです。 gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0 よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/15 00:56