++运算符的问题

wind1985_1011 2008-04-02 03:13:15
#include "iostream.h"

int main()
{
int a=3,b;
b=(++a)+(++a);
cout<<"a= "<<a<<" b= "<<b<<endl;
system("pause");
return 0;
}
输出结果为:
a= 5 b=10

自我感觉应该是:
a= 5 b=9

请高手解释一下原因,谢谢了


...全文
29 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅得不敢出门 2008-04-02
  • 打赏
  • 举报
回复
看编译器的编译原理了
wind1985_1011 2008-04-02
  • 打赏
  • 举报
回复
明白了,谢谢各位了
mjf_2008 2008-04-02
  • 打赏
  • 举报
回复
仔细想一下并不难理解,只有一个地址来存放a的值,最终就是这个地址里数据的相加,当然是10.
wind1985_1011 2008-04-02
  • 打赏
  • 举报
回复
我用的是devcpp
晨星 2008-04-02
  • 打赏
  • 举报
回复
同一表达式中针对同一变量有多次副作用,结果是未定义的。
换句话说,从C++语言的语法语义规则中,推导不出正确的结果。
qiucp 2008-04-02
  • 打赏
  • 举报
回复
和编译器有关

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧