[英]Variable inside if block is assigned to zero even if the if expression evaluates to false in C
#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;
}
现在,好像block的计算结果为false一样,如果if块不应该执行,但是代码将b的值打印为0。此外,如果if块结束后未分配c的值,则该代码将显示一些垃圾值湾 谁能告诉我为什么会这样发生,据我所知b在第一种情况下也必须显示一些垃圾值。
除非您初始化变量,否则您将无法确定它们的值是什么,因此这不足为奇。 如果要让b
变量包含一个有意义的值,请使用该值对其进行初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.