感觉这个代码编译都不会通过吧,fun有俩入參,但是第一个是(a++,b++b,a+b)这不是一个数吧
是不是(a++,b++,a+b)啊,这样的话是C
忘记说原理了:
步骤如下
入參第一个 逗号表达式最右边的子表达式的值即为返回值。所以,括号里相当于
a++;b++;入參 =a+b,那么a++ = 2, b++ = 3,入參 = 2+3 = 5
入參第二个,c=3,带入,++是函数返回后c才加
所以是5+3 = 8
題目有問題,所以以下答案都不能選才對
以上
编译不能应该能通过,主要是定义fun函数哪里int x误写为intx了,如果改好编译成功则,是考++,以及"逗号"的,最后结果应该是8。
具体计算是 (a++,b++,a+b)这个逗号表达式的值是a+b,因为在计算a+b时,a++和b++都已经分别执行,所以值为2+3=5
而在调用fun((a++,b++,a+b),c++)时,是先调用再c++,所以其实是调用fun(3,5)所以最终值为8