c语言求助

fun((a++,b++,a+b),c++)
是如何运算的

答案是8
过程如下:
fun((a++,b++,a+b),c++)
先看:(a++,b++,a+b) 这个过程a++相当于1+1=2 b++相当于2+1=3 a+b=5 ,由于逗号表达式选
取的是最后一项的值,所以传入的x值是5
而c++在这里++还未起作用由于后缀的++是先用原值再加1,所以在return (x+y);里y的值仍是3,
所以最终的结果是5+3. 需要说明一下的是,(a++,b++,a+b)由于逗号的作用a+b中a,b使用的都是加1后的值了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-17
fun函数2个参数:
一个是a++,b++,(a+b)
一个是c++

逗号运算符,从左往右,a++后,a是2,b++后,b是3,a+b是5。所以这个参数传进5.

c++,先将c自身的值3传进fun函数,再自加。所以是该参数传入的是3不是4.

结果是8
相似回答