int y=0,x=3; y=(++x)*(++x)*(++x) 为什么y=150啊?啊

2025-06-20 16:27:23
推荐回答(1个)
回答1:

这是由c的执行顺序产生的,y=(++x)*(++x)*(++x)先执行(++x)*(++x),由于x的初始值是3,所以第一步执行了括号里的两个++,于是x=5,之后相乘等于25,再然后就等价于25*(++x),(注意此时的x已经等于5了),由于()的优先级大于*,所以先进性++,x=6,上述就等价于25*6=150了,,,,,,,,,,,,,,,,,,,,,,,如果还有怀疑,可以试试y=(++x)*(++x)*(++x) *(++x) 是不是等于1050,即150*7,,,,,后续的以此类推