这是我的代码:

#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/

10-14 01:20