关于初学C语言的问题1

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:09:59
Q1:#include<stdio.h>
void main()
{
int a,b,su;
a=123;b=323;
su=a+b;

printf("su is %d\n",su);
}


#include<stdio.h>
void main()
{
int a,b,su;
su=a+b;
a=123;b=323;

printf("su is %d\n",su);
}
运行结果不一样,是因为a b和su写的时候顺序不一样,不过我想请问具体一点导致他们运行结果不一样的理论原因是什么?
越理论越好,越详细越好,谢谢~~~!!
谢谢你们的回答,我明白了个大概。
不过你们都提到了SU的不定性和随机性,可是为什么每次运行的结果都是一样的呢?
su is -1717986920
具体的原因又是什么呢?或者代表的只是地址?

第二个程序在计算su时a,b,为赋值,所以参加运算的是两个随机数,计算su后再赋值a,b不影响su的值。第一个程序在计算su之前就赋值a,b了,所以第一个就是123+323

su=a,b的时候~~a,b没有付值~~所以a,b是随机值;

所以su也是随机的~......

而第一个程序~~su=a,b的时候~~a和b已经付值~~所以su是a,b的和;