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

问题描述

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'变量?

解决方法

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

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

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