为什么变量“ i”即使未初始化也返回值0?

时间:2020-08-16 20:19:05

标签: c function if-statement switch-statement

void main()
{
    int i, n, count = 0;
    printf("%d\n", i);
    printf("%d\n", n);

    while (count != 10)
    {
        printf("%d", i);
        i++;
        count++;
    }
}

documentation

如果给我一些垃圾值,那么如何将相同的值分配给'n'变量?

1 个答案:

答案 0 :(得分:1)

您已经观察到i的值是不确定的。在您的环境中,它恰好为零。使用不同的编译器,可能碰巧是其他东西。那里没有谜,只是偶然。

如果它给我一些垃圾值,那怎么可能是相同的值 被分配给'n'变量?

它不能可靠。 (它将在某些编译器上工作,并且在大多数禁用了优化的情况下都可以工作,但是通常,您不能可靠地复制未初始化变量的不确定值。)