int main()
{
int a;
printf("the value is %d", a+'a');
return 0;
}
在上面的代码中,a
是局部变量,如果我们没有明确地给它们赋值,那么局部变量会初始化为垃圾值。所以输出应该是一些垃圾值。但为什么我输出为97
?
答案 0 :(得分:2)
在您的代码中,
printf("the value is %d", a+'a');
生成undefined behaviour。 UB的输出是,未定义。
对于调用UB的语句,您不能依赖(或证明)结果(,如果有的话)。
答案 1 :(得分:0)
局部变量是堆栈变量。它们未初始化(与静态变量不同)。所以最好初始化自己。