(++i)+(++i)为什么会多一个

lsy010927 2017-11-14 07:08:47
我用vc6.0运行之后的结果为什么是6不是5???

#include<stdio.h>
main()
{
int i=1;
printf("i=%d",(++i)+(++i));
}
...全文
209 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻想0051 2017-11-16
  • 打赏
  • 举报
回复
第一次 ++i 的时候 i=2了 第二次 ++i 的时候 i=3了 然后两个i相加,这个时候取的值就是改过之后的3, 3+3=6. 感觉有些编译器是不一样的
destory27 2017-11-15
  • 打赏
  • 举报
回复
(++i)+(++i) i= 2 i= 3 3 + 3
CT8100 2017-11-15
  • 打赏
  • 举报
回复
先做括号里面的运算,最后变成3+3
AI_channel 2017-11-15
  • 打赏
  • 举报
回复
未定义顺序,先执行了两次++i!
codedoctor 2017-11-15
  • 打赏
  • 举报
回复
这个和编译器相关,不同编译器的结果都可能不同。属于未定义行为,不要再同一行代码中使用多次++
赵4老师 2017-11-15
  • 打赏
  • 举报
回复
paschen 2017-11-14
  • 打赏
  • 举报
回复
顺序点问题,未定义行为 关于C,C++表达式求值顺序 http://bbs.csdn.net/topics/370153775
自信男孩 2017-11-14
  • 打赏
  • 举报
回复
有歧义性,类似这样的问题有很多,跟编译器有关系,不建议深究,也不建议写这样的代码。比如a = i+++i+++i++;
das白 2017-11-14
  • 打赏
  • 举报
回复
先执行两次++ 再x2

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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