作业帮 > 综合 > 作业

C语言逗号表达式的问题 x=6,y=7,z=8 r=func((x--,y--,x+y),z--)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 05:05:05
C语言逗号表达式的问题 x=6,y=7,z=8 r=func((x--,y--,x+y),z--)
C语言逗号表达式的问题
x=6,y=7,z=8
r=func((x--,y--,x+y),z--)
这里x+y为11,z为8是为什么?
逗号表达式使用逗号连接起来的几个式子.从左往右执行,最后整个逗号表达式的值为最后一个表达式的值.
所以先执行x-- y-- 然后执行x+y 最后整个逗号表达式的值为x+y的值.即11
z--表示在这个语句中先使用z.语句之后在--. 即执行完r=()之后 z的值为7,但在当前z使用值为8
再问: x与y为什么不像z一样后减,得x+y为13?
再答: 因为x--也是一个表达式,在x--中使用的是6. 表达式过后就是5。同理y

逗号表达式是顺序 执行 。也就是说算是一条语句·~