请教一个简单的问题

lywei123 2004-01-02 11:28:29
main()
{
int i;
i=3;
printf("%d,%d,%d",i,i++,i++);
}

运行结果:
5,4,3

为什么呢?
...全文
31 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
19830711 2004-01-03
  • 打赏
  • 举报
回复
楼主不必拘于细节
pikaqiu96 2004-01-03
  • 打赏
  • 举报
回复
这与你所用的编译器有关,有的从左到右,有的从右到左,
你可能是用的TC故它的运算顺序是:
i++ //i=3然后i自加1;
i++ //i=4然后自加1
i //i=5
soulz 2004-01-03
  • 打赏
  • 举报
回复
和编译器有关,有些是 从左到右的,有些则是从右到左的
gaowentao 2004-01-02
  • 打赏
  • 举报
回复
这是由于你的编译器是从右到左进行编译的
leafsax 2004-01-02
  • 打赏
  • 举报
回复
此问题中的 printf("%d,%d,%d",i,i++,i++)
计算顺序是i,i++,i++这个逗号表达式,先计算后面的
按照值传递方式传给printf,结果是5,4,3

个人意见仅供参考
zhangfjj 2004-01-02
  • 打赏
  • 举报
回复
printf("%d,%d,%d",i,i++,i++);//调用函数
这个与函数调用时实参的值求值顺序有关,在大多数编译器中顺序是从右到左的,TC2就是这样的,
i,i++,i++,从右边起,不就是5,4,3吗

70,022

社区成员

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

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