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