打印刚刚初始化的变量时未定义的行为

use*_*643 -1 c initialization

我最近开始学习C编程.作为练习的一部分,我使用了以下程序:

#include<stdio.h>

int main()    {

    int a;
    int b;
    int c;

    a = 350 ;

    if (a >= 400)  {

        b = 800 ;
        c = 500 ;

    }

    printf("%d %d\n", b,c);
    return 0;
}       
Run Code Online (Sandbox Code Playgroud)

因为a = 350我得到32767 0了输出.因为a = 401我得到了预期的输出.

请帮我解决相关问题.提前致谢

Chr*_*aes 7

这没什么意外的.如果a=350,那么你的变量b和c没有被初始化; 因此它们包含"随机信息"; 从打印出来的时候,你会得到垃圾.这可能是你锻炼的目标.

编辑更详细一点:

int b;
Run Code Online (Sandbox Code Playgroud)

b现在包含垃圾; 因为你没有给一个值b; 它只包含分配此空间时意外出现在内存中的值.如果你这样做:

b = 800;
Run Code Online (Sandbox Code Playgroud)

现在b包含值800 ...(但是当a = 350时你没有进入代码的这一部分; b的值仍未定义)