(++a)+=(a++)怎么计算啊?
inta=4;cout<<(++a)+=(a++)<<endl;//结果为10cout<<a<<endl;//结果为11帮忙分析下啊,谢谢了。...
int a=4;
cout<<(++a)+=(a++)<<endl; //结果为10
cout<<a<<endl; //结果为11
帮忙分析下啊,谢谢了。 展开
cout<<(++a)+=(a++)<<endl; //结果为10
cout<<a<<endl; //结果为11
帮忙分析下啊,谢谢了。 展开
展开全部
括号优先级最高,先算从左向右的算括号里的内容。
++a;//a=5
a++;//后缀表达式生成临时变量,取a当前值5,++操作在同一行表达式里最后执行
//再算+=操作,+=操作从右向左
a+=5//5为a++表达式临时变量返回值,a为++a表达式的返回值,整条表达式返回值为a的值即10,这也是第一个cout输出值
//最后执行a++后缀表达式的++操作,a为11
++a;//a=5
a++;//后缀表达式生成临时变量,取a当前值5,++操作在同一行表达式里最后执行
//再算+=操作,+=操作从右向左
a+=5//5为a++表达式临时变量返回值,a为++a表达式的返回值,整条表达式返回值为a的值即10,这也是第一个cout输出值
//最后执行a++后缀表达式的++操作,a为11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运算顺序为++a,得结果5
a+=a;
得结果10
a++;
得结果11
一个比较好懂的区分++a和a++的办法就是++在前就先++了再得结果,比如这里,就先按++了以后的算,如果a++就先算a,完了再++
a+=a;
得结果10
a++;
得结果11
一个比较好懂的区分++a和a++的办法就是++在前就先++了再得结果,比如这里,就先按++了以后的算,如果a++就先算a,完了再++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lz你好,为什么结果是10和11楼上的几位都说的很清楚了。
我想说下,cout<<(++a)+=(a++)<<endl; 这个语句本身就通不过编译的。
因为用cout输出赋值语句的时候,一定要用括号括起来的!!
我想说下,cout<<(++a)+=(a++)<<endl; 这个语句本身就通不过编译的。
因为用cout输出赋值语句的时候,一定要用括号括起来的!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个cout中,运行了:a=a+1;
a=a+a;
第二个cout中,运行了:a=a+1;
a=a+a+1;
++a:在使用a之前给a加1;
a++:再a使用(参与运算)后再加1;
cout<<((++a)+=(a++))<<endl;
cout<<a<<endl;
a=a+a;
第二个cout中,运行了:a=a+1;
a=a+a+1;
++a:在使用a之前给a加1;
a++:再a使用(参与运算)后再加1;
cout<<((++a)+=(a++))<<endl;
cout<<a<<endl;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询