按优先级算为什么不对啊

a=3,c=2;
a*=c+1;
结果为9

你可能记错了

a*=c+1; // 等于a = a*(c+1);

这是乘后赋值,从右到左的。

怎么不对的?就是9啊

a*=c+1 == a=a*(c+1) = 9
=是一个赋值运算,优先级=一样,不是和一样的

楼主,运算是这样的
a*=c+1
先进行c+1
得到3
再赋值给a
最后看成
a*=3
a=a*3
等于9

a*=c+1;的含义是: a=a*(c+1)