int a=12;求(++a)+(a++)的值.

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 19:11:50
int a=12;求(++a)+(a++)的值.
xTRP780`.%vՍ@U* u#~L}yY =I0f:tu,9{妶7^ocj:b]TuIYTeɩHc7?l7ɮPJ2SEmx Iϓ~$|h^wz,Jš=64EeP'+N $Ę 15|QS[ON킒XUߊlL'B _T1'qX!SGn6KLɪ~F4v|%Xrا!$O95Uzr2)o~ά)[pn=n\-< hD*ct sxy2ejg10tjןQ,uS?XX,6shlOД@yvT3 +8< ,:&u5rk^]+%#H:r`*z%cD5<М\ 2Crx0a#$6Kַd3f\|7O

int a=12;求(++a)+(a++)的值.
int a=12;求(++a)+(a++)的值.

int a=12;求(++a)+(a++)的值.
执行这个式子后 a是14 前后分别+1
你是求什么.这个式子.还是最后的a
如果结果式是 a=(++a)+(a++) 那么a=27 a=(13)+13++
如果结果式是 b=(++a)+(a++) 那么b=26 b=(13)+(13++)

一些脑 残老师的题,要做程序员就不要写这种让人迷糊的语句,

++a,是"前自加",求解表达式后,才将a加1。
a++是"后自加",将a加1后,再求解表达式。
c++中操作符优先级规定,自增操作符的优先级高于算术操作符(此处为+操作符),而后自增(例如a++)操作符又高于前自增操作符(例如++a,当然自减操作符同样遵循),如果有括号就先执行括号的表达式!
于是:
int a = 12;
(++a) + (a++);/*...

全部展开

++a,是"前自加",求解表达式后,才将a加1。
a++是"后自加",将a加1后,再求解表达式。
c++中操作符优先级规定,自增操作符的优先级高于算术操作符(此处为+操作符),而后自增(例如a++)操作符又高于前自增操作符(例如++a,当然自减操作符同样遵循),如果有括号就先执行括号的表达式!
于是:
int a = 12;
(++a) + (a++);/*首先计算后面的表达式后自加(a++),于是此时a = 13,然后2个a相加结果就等于26,最后a的值还要执行前自加表达式(++a),于是a为14 */
最后即便没有括号例如:++a + a++;该表达式根据优先级原则,结果同样是26!

收起