fun(i,i++)为什么相当于fun(3,3)而不是fun(4,3)?

[复制链接]
查看: 195|回复: 2

fun(i,i++)为什么相当于fun(3,3)而不是fun(4,3)?

[复制链接]
查看: 195|回复: 2
小超

286

主题

1355

回帖

5010

积分

荣誉会员

积分
5010

社区居民

小超 2011-10-6 08:36:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享受更多内容,了解更多户外知识,让你轻松享受户外!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
++i是立刻有效。i++是下一个运算式才有效。。
”济源户外网” www.jyhww.com 倡导“积极健康”的生活方式、崇尚“自然、和谐、真诚、友爱”的人文精神,以“自主、绿色、氧气、阳光、健康、友谊”为宗旨,由热爱生活、热爱大自然的群体组成。是户外运动者的家园,也是个人挑战自我。
钻石

298

主题

1041

回帖

4217

积分

猛驴

积分
4217

社区居民

钻石 2011-10-6 08:45:41 | 显示全部楼层
这是个编译器的问题,不要理他,你清楚了你编译器的规律,你就改过来行了。 我曾经研究过,也就是函数中的参数是按照从左到右取值还是从右到左取值的问题。你问的明显是从左到右啊,至于I++的运算规则就不说了。                                                                                         <h4 class=\"ask\">追问</h4>                            我现在问的就是在从右到左的情况下,i=3时,也应该是fun(4,3)呀,i++是先使用i,再自加得4,然后把i的值传给第一参数,不就是fun(4,3)?就像fun(i,++i)也是i先自加得4,传给第二形参,那i的值就保持为4,传给第一个形参,那么在fun(i,i++)的请款下,在i变为4后也应该保持不变传给第一个形参,不就是fun(4,3)?
”济源户外网” www.jyhww.com 倡导“积极健康”的生活方式、崇尚“自然、和谐、真诚、友爱”的人文精神,以“自主、绿色、氧气、阳光、健康、友谊”为宗旨,由热爱生活、热爱大自然的群体组成。是户外运动者的家园,也是个人挑战自我。
尼玛

287

主题

1019

回帖

4014

积分

荣誉会员

积分
4014

社区居民

尼玛 2011-10-6 08:47:42 | 显示全部楼层
这和编译器有关。c规范里面没有规定求值顺序。编译器可以先算i,也可以先算i++。在某些编译器上可能相当于fun(3,3),在另外一些编译器上可能又是fun(4,3)了。
”济源户外网” www.jyhww.com 倡导“积极健康”的生活方式、崇尚“自然、和谐、真诚、友爱”的人文精神,以“自主、绿色、氧气、阳光、健康、友谊”为宗旨,由热爱生活、热爱大自然的群体组成。是户外运动者的家园,也是个人挑战自我。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|济源户外网-天韵茗茶 | 豫ICP备10211396号-1

GMT+8, 2025-8-14 05:01 , Processed in 0.068237 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.