C语言中这一语句的执行顺序

if(1){x=y;y=z;z=x/y;}

请问这执行顺序应该是?

所谓结合性:
+,-在做一元运算符时具有右结合性,如:+1,-1(表示正负1)
+,_在做二元运算符时是从左向右结合,如1+2-1(表示加减)

你的程序如果x>y的话,fabs(z)>1.就会从左到右执行.x=y;y=z;z=x/y
本程序如果是int x,y,z; "/"改从"%"的话,则是求x和y的最大公约数.

你的程序执行过程:首先z=3.6\2.4=1.5
执行if语句{x=2.4,y=1.5,z=1.6}
fabs(z)>1,既|1.6|>1,执行if语句{x=1.5,y=1.6,z=0.9375}
再fabs(z)<1,跳去while循环.
输出y的值1.6.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-30
顺序是左到右,右结合是重右向左,你上面这段代码应该是直接显示Y的值,上面if里面的判断是假,应该直接终止了.
第2个回答  2013-12-30
操作符的结合性要从汇编语言里来看就比较容易理解了,因为在高级语言中我们看到的是 X = 1;这里的=就有向右结合性,我们汇编语言中看它就是 mov eax 1,你可以把它看做 mov x 1,也就是你看到了mov就知道应该把1放进x,而不是把x 存入1,当然1是常数不能存储,这里只是举个例子。
第3个回答  2013-12-30
C语言中 0有真,非0为假
第4个回答  2013-12-30
if语句写的什么啊,没看懂1
相似回答