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
这个式子为什么成立?
谢谢!
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,因为要从右往左进行
第二题好像出错了吧