C语言的两个小问题:

来源:百度知道 编辑:UC知道 时间:2024/06/25 15:43:43
第一,
int x=1,y=2,z=3;
x+=y+=z;
print("%d,%d,%d",x,y,z);
运行后,屏幕将显示哪3个数字?

第二,
x=x%3a=a/3
这个式子为什么成立?
谢谢!

自己多注意各种运算符号的优先级啦!
第一:
运算顺序为:y=y+z;y=5
x=+y;x=6,z值不变
屏幕将显示:6,5,3

1.
6,5,3

2.
你确信是x=x%3a=a/3
是这样嘛?中间没有任何符号?那么可以负责的说,这个通不过编译。3a就无法解释。

x+=y+=z; ==> x += ( y += z );
==> x += ( y = y + z );
==> x = x + ( y = y + z );
==> y = y + z = 5;
x = x + y = 6;

6,5,3这个不难
注意优先级就行了
第二个有问题,3和a之间应该有*号,你看是不是这样!

x=6,y=5,z=3,因为要从右往左进行
第二题好像出错了吧