以下是引用Undeadsprout在2007-9-7 18:15:54的发言:
我现在认为应该先是:x+=x,得到x=10
x++得到11
++x得到12
y=2+12
+=,自加++的优先级是一样的,应该从左向右算的,对不对?
我现在认为应该先是:x+=x,得到x=10
x++得到11
++x得到12
y=2+12
+=,自加++的优先级是一样的,应该从左向右算的,对不对?
+=与++优先级一样高,且这两个运算符的结合性均是从右向左,
即先计算++。。。
+=与++优先级一样高,且这两个运算符的结合性均是从右向左,
即先计算++。。。
无了的程序~~~~
#include <iostream.h>
void main()
{
int x=5;
int y=2+(x+=x++,x+8,++x); // ①x+=x 得到10;②++ 得到11;③++x 得到12
cout<<y<<endl;
}
老问题了,而且经久不衰。
++ 的优先级比 += 高。
由于++是变量先使用后再加 1 ,所以 x+=x++,应该是先算x+=x,即得:x=10,再算x=x+1,得 x=11,++x=12[此贴子已经被作者于2007-9-10 14:48:33编辑过]
我觉得这个好象是对的,理解的蛮深刻的