int a=5,b=(++a)+(++a)+(++a)怎么计算? 5
编译出来的结果是最后b=22,a=8如果只计算b=(++a)+(++a),结果是a=7,b=14请问计算的时候每一步详细应该是怎么样的呢?...
编译出来的结果是 最后b=22,a=8 如果只计算b=(++a)+(++a),结果是a=7,b=14 请问计算的时候 每一步详细应该是怎么样的呢?
展开
展开全部
#include <iostream>
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):" <<b << endl;
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这样的结果
展开全部
b=(++a)+(++a)+(++a)这样的写法本事就是有问题,不同的编译器会有不同的结果。简单解释下就是,我们并不知道对a求值的时候a是多少,我们能确保的仅仅是在自增后才对a求值.所以,有可能在对第一个++a求值的时候,已经完成了三次自增。了解更多可百度求值顺序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=6+7+8=21
a=8
a=8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询