x=y=1;z=x++,y++,++y; z等于多少?

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:29:08
不是表达式的值是最后一个表达式的值吗 z为什么等于1

x++,在表达式完成后x才加1;所以z=x先于x++发生,所以z=1;
这里就是++在前后在后的区别了

问题很典型
我告诉你吧:
因为|“,”的优先级最小

z=1.
因为z=x++相当于z=x,x=x+1.且由已知知道x=1,代入故z=1,然后x自增,x=2。其他的y++,++y没有作用。混淆视听的。

第一个是xy均为1,而第二个,由于++在x的后面,那么则是先将x的值赋给z,z=1,而后,x再自身加1,为2。若++在x的前面,那么,x则是先自身加1,而后才赋给z,那时,z才等于2.

第一步,x,y都赋值为1
第二步,z=x++先将x的值赋给z,然后x再自加1.

这里你要注意的是++x则是先自加再参加运算;而x++则是先参加运算再自加。

赋值运算符的优先级仅大于逗号运算符,也就是说在这个逗号表达式中"z=x++"是一个整体,也即(z=x++),y++,++y; 而不是z=(x++),y++,++y;
迷惑性挺大的,我也做错了~~