为啥第四题是3 3啊,不应该是4 3么

img


为啥第四题是3 3啊,不应该是4 3么,怎么还没到30字,30字

这段代码错了,正确的为:

int a = 3, b = 5, c;
c =(a>--b)?a++:b--;

c =(a>--b)?a++:b--;

只执行满足条件的部分,a++没有赋值给c,因此也不存在a+=1这一步了。

换一个简单点的,
c =(a>--b)?a++:b--;等价于:

if(a>--b) {
c = a++;}
else {
c = b--;
}

都不对,应该是编译错误,明显中间的分号应该改成冒号
如果改成冒号的确是3 3,因为如果条件不成立a++就直接不会执行了