这里x+y为11z为8是为什么?
可选中1个戓多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
这里x+y为11z为8是为什么?
可选中1个戓多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
逗号表达式使用逗号连接起来的几个式子。从左往右执荇,最后整个逗号表达式的值为最后一个表达式的值
所以先执行x-- y-- 然后执行x+y 最后整个逗号表达式的值为x+y的值。即11
z--表示在这个语句中先使用z。语句之后在-- 即执行完r=()之后 z的值为7,但在当前z使用值为8
因为x--也是一个表达式在x--中使用的是6. 表达式过后就是5。同理y
逗号表达式是顺序 執行 也就是说算是一条语句·~
因为x和y自减了以后作为第三个参数
而z--表达式的值为z自减之前的值,为8
表达式运行结束了以后z为7
x--, 是表达式評估之后才递减,评估完括号里第一个参数x--后x变成5
同理,评估完括号里第二个参数y--, y变成6
等到评估x+y时5+6,自然就是11啦
z--,评估之后才递减所以传给func的值还是8。
英语里叫 evaluate 就是计算表达式的值。
当c语言里遇见序列点就会评估序列点之前表达式的值逗号就是序列点之一。
逗號表达式使用逗号连接起来的几个式子。从左往右执行最后整个逗号表达式的值为最后一个表达式的值。
所以先执行x-- y-- 然后执行x+y 最后整個逗号表达式的值为x+y的值即11
z--表示在这个语句中先使用z。语句之后在--。 即执行完r=()之后 z的值为7但在当前z使用值为8
拍照搜题秒出答案,一键查看所有搜题记录
拍照搜题秒出答案,一键查看所有搜题记录
拍照搜题秒出答案,一键查看所有搜题记录
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。