繁体   English   中英

即使if表达式在C中的计算结果为false,if块内部的变量也会赋值为零

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM