如题目啦 n+=m++的运算顺序是什么?不是++优先级高点吗?
以上语句等价于
n += m;
m ++;
如果是n += ++m;的话,则等价于
m ++;
n += m;
先解释一下 += 和 ++ 是什么意思:
+= 的意思是 左值和右值相加结果赋值给左值,如 a=1;b=2;a+=b;后,等效于a=a+b ,结果a=3;b=2。
++ 的意思是变量自加1,如a=1;a++;a的值是2,
在c中,++有前置和后置如 ++a;a++;,单独使用的时候是没有区别的,都是自加1,在有运算时就有区别了,前置的++是自加后才参与运算,后置的++是参与运算后在自加1。
如题的话,假定n=1,m=2,n+=m++的意思就是m=2先参与n+=m运算n=3,然后m自加1,m=3;
如果m++换成前置++m,n+=++m就是m先自加1,m=4,然后参与n+=m运算,n=4。
等效于n+=m;m++;
等效于n+=m;m++;