刚学C语言 想知道下面这两个代码有啥区别,为啥结果不一样?

刚学C语言
想知道下面这两个代码有啥区别,为啥结果不一样?
#include
int main(){
int a;
int b;
a=b+1;
scanf("%d",&b);
printf("a=%d",a);
return 0;
}

img

#include
int main(){
int a;
int b;
scanf("%d",&b);
a=b+1;
printf("a=%d",a);
return 0;
}

img

第一段代码,每次运行都会得到不同的值,因为 a b 都是只定义未赋值,a b 的值都是不确定的。

第一段a=b+1的时候b还没有输入值呢,肯定不对的啊。第二段已经输入值了,这时候a=b+1就使得a比b输入值大1了