一个简单的表达式运算

simaping 2007-12-05 07:28:36
#include<stdio.h>
int main(void)
{
int i,k;
i=2;
k=(i++)+(++i)+(i++);

printf("%d,%d\n",i,k);

}

请问一下是怎么运算的?
...全文
125 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhd3767 2007-12-06
  • 打赏
  • 举报
回复
个人认为应该是5,10
不知道怎么出来5,9的
希望给解释一下
Treazy 2007-12-06
  • 打赏
  • 举报
回复
又来了啊~~~
编译器相关,无任何研究价值~~~
simaping 2007-12-06
  • 打赏
  • 举报
回复
我也知道和编译器有关,但无论按照TC还是VC的执行顺序,运算都和输出不一样啊
就VC而言,我也觉得应是5和10,但输出是5和9。
难道说和编译器有关就是特定某个编译器(如VC)的执行机制也是不确定的么?
ChamPagneZ 2007-12-06
  • 打赏
  • 举报
回复
与编译器有关.
这种题目没必要去研究,没有意义
kojie_chen 2007-12-05
  • 打赏
  • 举报
回复
vs 2008 上是5 9学习了
topkingworld 2007-12-05
  • 打赏
  • 举报
回复
vc6.0答案是 5,9,论坛里面关于这方面的问题很多了
air58 2007-12-05
  • 打赏
  • 举报
回复
我用vc6.0,答案是5,9
个人认为应该是5,10,郁闷~呵呵
merlinfang 2007-12-05
  • 打赏
  • 举报
回复
跟编译器相关的东西,毫无意义,
个人编译器翻译一下:
k=(i++)+(++i)+(i++);

k=i+(i=i+1)+i;i++;i++;
liuyann 2007-12-05
  • 打赏
  • 举报
回复
结果和编译器的处理相关

I tried on HP-UX, Redhat Linux, openVMS & Windows VS, the result is different.
ckt 2007-12-05
  • 打赏
  • 举报
回复
结果和编译器的处理相关

实际写代码,基本上不会出现这种
你只要明白i++ 和++i 的区别就行了
zsjsgyy 2007-12-05
  • 打赏
  • 举报
回复
输出结果是不是
4,8
believefym 2007-12-05
  • 打赏
  • 举报
回复
以后在一个表达式里出现多个++、--的直接无视就可以了
讨论这个没意思的,跟编译器相关,也不需要了解到底怎么个运算顺序

70,023

社区成员

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

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