关于printf中i++与++i的问题

music_Em 2012-09-20 09:42:58
请问
main()
{ int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}的输出结果是 9 8 8 9 -8 -9
main()
{int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}的输出结果是8 8 7 8 -7 -8
我在VS2010上运行 我觉得上面的代码都是一样的 为什么输出结果会不一样
求好心人帮忙解答一下 谢谢了
...全文
336 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hu7324829 2012-09-20
  • 打赏
  • 举报
回复
请看置顶的帖子。
PIE 2012-09-20
  • 打赏
  • 举报
回复
这个跟编译器相关
baichi4141 2012-09-20
  • 打赏
  • 举报
回复
不管在什么函数中什么语句中,同一个语句对某个变量多次++--,结果不确定
所谓不确定不是指每次运行结果不确定,而是指换个编译器该语句的功能就会变化
C/C++语言标准称之为未定义行为,编译器可以自行决定其结果,从报错到系统崩溃都随编译器提供商的心意而定

69,371

社区成员

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

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