在群里有人发了个问题~ 说话的都有写 "不明白" 我就来问下啦 ~ 关于自增操作符的...

JL3517 2009-03-26 09:43:55
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
int a,b=5;
a=(++b);
cout<<a<<endl;
b=5;
a=(++b)+(++b);
cout<<a<<endl;
b=5;
a=(++b)+(++b)+(++b);
cout<<a<<endl;
return 0;
}


它打印出 6 14 22
怎么回事呢?
不应该是 6 13 21 的么?

谢谢了
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nextel 2009-03-27
  • 打赏
  • 举报
回复
看汇编一目了然
aaaa3105563 2009-03-27
  • 打赏
  • 举报
回复
VS 编辑器下 6 14 24
Cloud_drift 2009-03-26
  • 打赏
  • 举报
回复
编译器不同,对自增的操作解释是不一样的,这个问题问了好多次了,不用太钻研了,写程序的时候注意规范,避免二义性就好。
hemiya 2009-03-26
  • 打赏
  • 举报
回复
编译器实现不一样,结果不一样。这个没有标准,正常下不要写这种代码。
downmooner 2009-03-26
  • 打赏
  • 举报
回复
6
14
24
请按任意键继续. . .

VS2005

这种题目无意识。各编译器不一样
JL3517 2009-03-26
  • 打赏
  • 举报
回复
3Q~到此为止了
cnStreamlet 2009-03-26
  • 打赏
  • 举报
回复
又是这类问题

取决于编译器
ydntlk 2009-03-26
  • 打赏
  • 举报
回复
非标准的东西不要去花精力了,a=(++b)+(++b)+(++b);这个语句的具体的执行顺序是依赖于具体的编译器实现的。
JL3517 2009-03-26
  • 打赏
  • 举报
回复
vc 6.0

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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