c语言问题int a=1; a += ++a + a++;输出a的值为什么是7

inta=1;a+=++a+a++;输出a的结果为什么等于7?我的理解是先算2个自增就变成a+=2+2,即a=a+4,就是a=1+4,所以我得出的结果是5请教一下哪里错了... int a=1;
a += ++a + a++;
输出a的结果为什么等于7?
我的理解是先算2个自增就变成a += 2 + 2, 即a = a + 4,就是a = 1 + 4,所以我得出的结果是5 请教一下哪里错了
展开
 我来答
天雨下凡
2016-11-03 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65157
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
请不要纠结这种问题,也不要在意输出的结果,因为:
此种语句的运算顺序是由具体的编译器来决定的,换句话说,这种语句是不可移植的,可能在A编译器中编译运行结果为一个数,在B编译器中编译运行结果又为另一个数。
更多追问追答
追问
我是用vc6敲的,想知道它是怎么得来的
追答
我不想揣测具体编译器的具体运作方式,也不建议你把精力浪费在这种“匪夷所思”的问题上。在编程的过程中尽量不要写出类似的代码!!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式