这是我的代码:
#include <stdio.h>
void foo(void)
{
int i;
printf("%d\n", i);
i = 777;
}
int main(void)
{
foo();
//printf("hello\n");
foo();
return 0;
}
它显示:
-1079087064
777
但如果删除代码中的
//
,则会显示:134513817
hello
13541364
为什么它第一次显示777,
谢谢
最佳答案
你所做的是undefined behavior。您正在打印未初始化变量的值。这个数字可以基于先前在该变量的内存位置中的任何内容。
关于c - 为什么第一次显示777,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5590064/