0
#include<stdio.h>
int main(void) {
    int a = 123,b,c;
    if(a>300) {
        b=200;
    }
    c=4556;
    printf("b = %d\n",b);
    return 0;
}

现在好像块评估为假,所以 if 块不应该被执行,但是代码将 b 的值打印为 0。此外,如果在 if 块结束后没有分配 c 的值,那么代码会显示一些垃圾值湾。谁能告诉我为什么会这样,据我所知 b 也必须为第一种情况显示一些垃圾值。

4

1 回答 1

5

除非您初始化变量,否则您将无法确定它们的值是什么,因此这并不奇怪。如果您希望b变量包含有意义的值,请使用该值对其进行初始化。

于 2012-08-16T11:45:14.250 回答