问答详情
源自:3-10 运算符大比拼之优先级比较

为什么y=150啊

int x=3,y;

y=(++x)*(++x)*(++x);

提问者:浣熊举世无双 2021-07-31 22:28

个回答

  • 慕设计0238869
    2021-08-02 18:18:13

    其实是先同时计算了前面两个括号内的内容,即5*5,之后从第三个开始逐一计算,就变成了5*5*6,即150.


  • 慕设计0238869
    2021-08-02 18:15:52

    x=3,第一个++x是4,第二个5,第三个6,难道不是120吗

  • 昧光5751090
    2021-08-01 21:27:32

    先执行(++x)*(++x),由于()的优先级大于*,所以x其实是自增了两次,即为5,5*5=25。后面一个(++x),因为x已经等于5,再自增一次就是6,25*6=150。

  • 昧光5751090
    2021-08-01 21:27:24

    先执行(++x)*(++x),由于()的优先级大于*,所以x其实是自增了两次,即为5,5*5=25。后面一个(++x),因为x已经等于5,再自增一次就是6,25*6=150。