解释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);
}运算结果不一样,如果是运算优先问题麻烦详细解释下!!谢谢
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