int a=5,b=(++a)+(++a)+(++a)怎么计算?

2025-05-15 07:02:53
推荐回答(3个)
回答1:

#include 
using namespace std;

int main()
{
int a = 5;
int b = (++a) + (++a) + (++a);
int a1 = 5;
int b1 = (++a1) + (++a1);
cout <<"a:"<< a << endl <<"(++a) + (++a) + (++a):" < cout << "a1:" << a1 << endl <<"(++a1) + (++a1):" << b1 << endl;
    return 0;
}

结果:


在表达式中的“()”优先级高于“+”

所以(++a)+(++a)会优先执行++a两次,此时a为7,而(++a)整体值也为7,然后执行“+”也就是7+7=14

(++a)+(++a)+(++a)执行顺序相同,表达式最终值为8+8+8=24

a是一块空间存储的值,不可能同时又是6又是7又是8,所以也不可能是6+7+8这样的结果

回答2:

b=(++a)+(++a)+(++a)这样的写法本事就是有问题,不同的编译器会有不同的结果。简单解释下就是,我们并不知道对a求值的时候a是多少,我们能确保的仅仅是在自增后才对a求值.所以,有可能在对第一个++a求值的时候,已经完成了三次自增。了解更多可百度求值顺序。

回答3:

b=6+7+8=21
a=8