C语言这道题解答,x+=x+=5计算!!

来源:百度知道 编辑:UC知道 时间:2024/06/19 23:04:36
新手学习C语言,大家帮帮忙~~
————————————————————
#include <stdio.h>
main()
{
int x,y;
x=1;
x+=5;
x+=x+=5;
printf("x=%d",x);
}
——————————————————

上面在Turbo C中计算出X=22,这个22算么计算出来的?
关键是那个x+=x+=5怎么算?为什么把第六行的x+=5;去除算的结果就是12?到底哪里出了问题了?
先谢谢大家!
如果把第六行的x+=5;去除,x+=x+=5我能算出为什么等于12,但就不知道为什么x+=5;这个加上出了什么问题……x+=5;不是等于6吗,最终结果是如何得出的?

x=1
x+=5
则x=6
再x+=5
此时x=11
而x+=11
x=22

分解一下:
你的程序相当于:
————————————————————————————————————————————
#include <stdio.h>
main()
{
int x,y;
x=1;
x=x+5;
x=x+5;
x=x+x;
/* x+=x+=5 相当于: x+= (x+=5) 而表达式 “(x+=5)” 的值就是运算过的 x 值。 */
printf("x=%d",x);
}
——————————————————————————————————————————————————