c语言代码如下 int a=1,b; printf("%d尀n%d尀n",a,b); 为什么输出结果为: 1 8 这个8是怎么来的?

2024-11-15 05:54:13
推荐回答(2个)
回答1:

这个8应该是未初始化的结果,c语言没有要求必须初始化(具体怎么处理看编译器的配置了),它在不同环境上跑的结果可能不一样。例如

上面那个才是debug单歩的输出

回答2:

b没有初始化,所以系统会随便赋一个值给b,就像指针一样,不初始化指针的时候,系统就会让这个指针随便乱指,让它成为危险的野指针。所以,变量一定要先初始化,再做操作
以上代码可以改成
int a=1,b=0;
printf("%d\n%d\n",a,b);