当我运行以下代码(在Eclipse上)时,我收到一条弹出消息,指出.exe已停止工作:
#include <stdio.h>
main ()
{
int x;
x = 1;
printf(x);
}
我知道我应该按如下方式对其进行编码以使其运行:
printf("%d", x);
然而,我的问题仅仅是在那里&#34;在那里&#34;当我以前一种方式编码时。
答案 0 :(得分:2)
printf()
第一个参数是一个字符串。
在C中,值“1”被压入堆栈以调用printf。 printf期待一个字符串,所以它开始将1视为一个地址。
这会导致“停止工作” - 当它试图查看地址1处的字符时。
答案 1 :(得分:2)
您的代码告诉printf
在内存地址1
打印字符串。
你可能无法访问它,所以它会崩溃。