私はC言語の新入生で、これを思いつきました。私はコードします:
#include <stdio.h>
main()
{
int i=100;
printf("Helloo is: %d\n", i);
}
出力は次のとおりです。Helloo is: 100
ここまではすべて素晴らしいです! コードをこれに変更すると
#include <stdio.h>
main()
{
int i=100;
printf("Helloo is: %d\n", &i); // the &i is the change
}
コンパイルすると、警告が表示されます。warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat].
わかりました、コンパイラのメッセージが表示されますが、好奇心が強いので、とにかくプログラムを実行すると、この出力が得られます。Helloo is: -1078455636
プログラムを再度実行すると、別の出力が得られます! そう:
- これらすべての数字は何ですか? 変数iのメモリアドレス?
- プログラムを実行するたびに異なる出力が得られるのはなぜですか?
ありがとうございました!