effewf 2022-10-24 21:22 采纳率: 50%
浏览 8

后缀自增使用时的问题

后缀自增 ++ 的优先级高于赋值 = 和乘法 *
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++);

求解答!

  • 写回答

1条回答 默认 最新

  • Li&&Tao 2022-10-24 22:02
    关注

    这么说吧,有()的就先算括号里面的,以后遇到算法题目,搞不清都是先放到括号里面。
    Q1:如果是++a 输出的b就是2
    Q2: 后缀一般在不是第Q3情况下,都会是原来的值,第二次使用它的时候,才会增加1
    Q3: 括号的优先级高于任何的运算符。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月24日