表达式的值++是多少

a=2;
执行这条语句后t的值为多少?为何?

t=a+++(++a)+a++;

t是10
a++ 是先返回原本的值, 再对a加1
++a 是先对a加1 再返回加1后的值

a+++(++a)+a++
先计算最前面的a++ 先返回原本的值2, 再对a加1,a变成3
表达式变成 2+(++a)+a++
再计算(++a) 是先对a加1 ,a变成4, 再返回加1后的值4
表达式变成 2+4+a++
最后计算最后面的a++ 先返回原本的值4, 再对a加1,a变成5
表达式变成 2+4+4 = 10

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

C/C++语言标准里没有规定操作数的计算顺序,所以上面代码在不同编译器上得到的结果可能不一样,以后不要写这种代码。
https://en.cppreference.com/w/cpp/language/eval_order

,后➕➕赋值再运算。前➕➕运算再赋值。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632