鱼C论坛

 找回密码
 立即注册
查看: 3943|回复: 7

关于C语言的一个自增运算符的问题!

[复制链接]
发表于 2013-4-9 20:26:37 | 显示全部楼层 |阅读模式
2鱼币
  1. #include <stdio.h>

  2. void main()
  3. {
  4. int f(int a,int b);
  5. int i=2,p;

  6. p=f(i,++i);
  7. printf("%d\n",p);

  8. }

  9. int f(int a,int b)
  10. {
  11. int c;
  12. if(a>b)c=1;
  13. else if(a==b)c=0;
  14. else c=-1;

  15. return c;
  16. }
复制代码

为什么最终返回0,而不是-1呢?
p=f(i,++i);不是应该等于p=(2,3);吗?

最佳答案

查看完整内容

未定义行为 未必是先对右边的表达式求值的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-9 20:26:38 | 显示全部楼层
未定义行为 未必是先对右边的表达式求值的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-9 20:43:55 | 显示全部楼层
解决了!!!!原来他的值从右到左计算的!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-9 21:59:25 | 显示全部楼层
谢谢楼主分享此问题,
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-9 22:36:34 | 显示全部楼层
感谢楼主分享此问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-11 22:10:44 | 显示全部楼层
谢谢分享,这个问题我也没想过,现在来看看,以后会有点印象。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-12 09:02:07 | 显示全部楼层
从右往左运算  和编译器有关  刚好我昨天也有看过  哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-23 18:25:33 | 显示全部楼层
:L   这样的写很迷糊自己,最好写明白最好,
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-4 08:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表