C++中加号减号的运算顺序a=50 b=60 c=70有五个式子 计算结果:a=a+b-(b=a); 计算结束后 a=60 b=50;a=(a=b)+a; 计算后a=120;a=a+(a=b); 计算后a=120;a=c-(a=b)+a; 计算后a=70;a=c-a+(a=b);计算后a=80;这5个世子是分开计算的 不是放到一起的 请高手指教下 这里的计算顺序问题
问题描述:
C++中加号减号的运算顺序
a=50 b=60 c=70
有五个式子 计算结果:
a=a+b-(b=a); 计算结束后 a=60 b=50;
a=(a=b)+a; 计算后a=120;
a=a+(a=b); 计算后a=120;
a=c-(a=b)+a; 计算后a=70;
a=c-a+(a=b);计算后a=80;
这5个世子是分开计算的 不是放到一起的 请高手指教下 这里的计算顺序问题
答
首先,你要清楚运算符的优先级.
这个你在百度中搜索“运算符”,在百科中可以查到
其次,要知道赋值运算表达式的值是左值或右值.
比如b=a;
的值是b也是a;
式1:计算机的计算顺序:
a+b=50+60=110;
b=a=50;
(a+b)-(b=a)=110-50=60;
式2:
a=b=60;
(a=b)+(a)=60+60;(此时的a为60)
式3:
a=b=60;
(a)+(a=b)=60+60=120;
式4:
a=b=60;
(c)-(a=b)+(a)=70-60+60=70;
式5:
c-a=70-50=20;
a=b=60;
(c-a)+(a=b)=20+60=80;