请教:C语言中,下面赋值的运行结果

来源:百度知道 编辑:UC知道 时间:2024/05/02 20:35:35
各位大哥,小弟菜鸟,望大哥们帮忙看一下下面的运行结果:
main()
{
int a,b,c;
a=3;
b=4;
c=5;
if(a<c)
{a=b,b=c,c=a}
if(a!=c)
a=c;
if(a<b)
;
}
大体上语句就是这样的.我想问以上三种情况a,b,c的结果各是什么?
另外,请问,第一种情况下,a本来有值,b在这种情况下能将自身的值赋给a吗?第二种情况下,c如果将自身的值赋给了a,c的值是不是就没有了?还有b的值是不是还是他自身啊?第三种情况下,;的含义是什么?
希望各位大哥能抽出宝贵时间帮帮说明一下,小弟在这先谢过了.

if(a<c)
a=3; c=5;
这个条件是成立的,
按么执行{a=b,b=c,c=a}
即将b的值4赋值给a, a=4
c的值5赋值给b, b=5
a值赋值给c c=4

if(a!=c) a=c; 即条件是a不等于c,则将c的值赋值给a
if(a<b)
; 不论条件成立与否,都执行下面的语句。

a本来有值,b能将自身的值赋给a
c将自身的值赋给了a,c的值不变
;不执行其前面的判断

……不知道你说的什么意思额……
a本来有值,赋值时会被赋值变量的值取代,而赋值变量值不变,就是说
a=3,b=4
a=b
则结果是a的值为4,b的值也为4

上面那个如果是一段程序的话,结果应该是
a的值为4,b的值为5,c的值为4

注意:赋值语句标准的语句是这样组成的;
变量=常量;
是把后边的常量赋给前边的变量;
1.变量可以把他看成一个"容器",这个"容器"是在内存中的,后边那个常量是在CUP中的;变量为什么叫变量就是因为他可以变化,所以虽然A里本来就有值,但是把B的值赋给A,A是变量,最后A的值就变成了B的值;
2. 虽然B把自己的值赋给了A,A中装的是B的值,但是B本身的值是没有变化的,B也是一个变量,在没有别的的常量赋进B中的时候B的值是不变的;
最后的问题:一般情况下 if(a<b) 后边加的是要执行的语句吧,C语句是分号结束的,既然上边那个if后边只有一个分号,就可以看成是一个空的语句;
不是没有执行,而是他执行了,但他是空的语句所以没有意义.

第一种:因为逗号表达式从左向右运行,所以 a=4,b=5,c=4;
第二种:判断不成立,所以a、b、c的值不变 a=4,b=5,c=4;
第三种:判断成立,但是是空语句,所以a、b、c的值不变 a=4,b=5,c=4;