int a=1;
a += ++a + a++;
输出a的结果为什么等于7?
我的理解是先算2个自增就变成a += 2 + 2, 即a = a + 4,就是a = 1 + 4,所以我得出的结果是5 请教一下哪里错了
c语言问题int a=1; a += ++a + a++;输出a的值为什么是7
答案:2 悬赏:40 手机版
解决时间 2021-12-24 02:30
- 提问者网友:人傍凄凉立暮秋
- 2021-12-23 03:02
最佳答案
- 五星知识达人网友:鱼忧
- 2021-12-23 04:06
请不要纠结这种问题,也不要在意输出的结果,因为:
此种语句的运算顺序是由具体的编译器来决定的,换句话说,这种语句是不可移植的,可能在A编译器中编译运行结果为一个数,在B编译器中编译运行结果又为另一个数。
此种语句的运算顺序是由具体的编译器来决定的,换句话说,这种语句是不可移植的,可能在A编译器中编译运行结果为一个数,在B编译器中编译运行结果又为另一个数。
全部回答
- 1楼网友:街头电车
- 2021-12-23 05:09
是9吗?我自己的linux平台gcc编译结果为6,因为a=3,后面3次a++,就是3+1+1+1=6
b的值是9,因为a++是在执行加法操作之后才自加1,所以b的值为3+3+3=9
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |