#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;
}
现在好像块评估为false所以如果不应该执行块,但代码将b的值打印为0。 此外,如果在if块结束后未分配c的值,则代码显示b的一些垃圾值。 任何人都可以告诉我为什么会发生这种情况,据我所知,b必须为第一个案例显示一些垃圾价值。
答案 0 :(得分:5)
除非您初始化变量,否则您无法确定它们的值是什么,因此这并不令人惊讶。如果您希望b
变量包含有意义的值,请使用该值初始化它。