解释1个简单的C语言赋值疑问

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:28:08
代码#include <stdio.h>
void main()
{
char c;
int i;
c=i;
i=289;
printf("%d",c);
}
和#include <stdio.h>
void main()
{
char c;
int i;
i=289;
c=i;
printf("%d",c);
}运算结果不一样,如果是运算优先问题麻烦详细解释下!!谢谢

显然是不一样的,跟运算优先级没关系
第一个:
char c;
int i;
c=i;

执行c=i时,i中并没有值,所以赋值给c的要么是0,要么是随机数

第二个:
char c;
int i;
i=289;
c=i;
执行c=i是i中值是289,自然赋值过去

当然不一样,
第一个定义i,没有赋值,i的取值有一定的随机性(也就是事先不知道什么值,每次运行都会不一样),然后把这个不确定的i给了c,再给i赋值为289

第二个 先给i赋值289,然后在把i给c 这样c肯定是289