后缀自增 ++
的优先级高于赋值 =
和乘法 *
Q1.为什么b的值是 1
,不是 2
,这不是违背了优先级吗?
int a = 1;
int b = a++;
Q2.同上,++
的优先级更高,为什么是 2 * 1
不是 2 * 2
呢?
int a = 1;
int b = 2 * a++;
Q3.与Q2中代码相比,Q3中 (a++)
多了括号,但不也是按照优先级,先进行后缀自增再进行乘法,为什么结果不再是Q2中的 2 * 1
,而是 2 * 2
?
int a = 1;
int b = 2 * (a++);
求解答!
这么说吧,有()的就先算括号里面的,以后遇到算法题目,搞不清都是先放到括号里面。
Q1:如果是++a 输出的b就是2
Q2: 后缀一般在不是第Q3情况下,都会是原来的值,第二次使用它的时候,才会增加1
Q3: 括号的优先级高于任何的运算符。