[问题] 关于(i++)与(++i)

楼主: yaerse (寂寞时就拥著书本吧)   2015-01-18 01:20:16
在程式例题中看到
i=5;
j1=0;
j2=0;
j1=(i++)+5;
i=5; <
作者: Chikei ( )   2015-01-18 01:37:00
因为两个op的return value不一样,不要把(i++) (++i)当做对i作处理后再回传i,把它想成一个吃i的function,函数内
作者: ClareQ (人比人Cheese人)   2015-01-18 01:40:00
前面j1赋值后i==6,之后j2=7+5=12,所以j2==12才对吧:P
作者: Chikei ( )   2015-01-18 01:40:00
会修改i那个变量,但是回传值只跟传入时的值有关
楼主: yaerse (寂寞时就拥著书本吧)   2015-01-18 02:10:00
回ClareQ,我少掉一行重新设定i=5; :P先感恩Ckikei大的回复,不过您的说法,小弟还是无法理解第一句,"两个op的return value不一样"..此两个op是指??
作者: Killercat (杀人猫™)   2015-01-18 03:25:00
op = operator, ++i/i++分别是一种op前者return value是i+1 后者是i 是不一样的
作者: Kenqr (function(){})()   2015-01-18 11:52:00
把++i和i++想成是两个函数,这两个函数都会把i的值+1++i会回传i+1,i++会回传i
作者: longlongint (华哥尔)   2015-01-19 00:33:00
把它看作两行j1=I+5i=i+1
作者: lineok   2015-01-30 00:11:00
i++ 为后序递增,故先做赋值,再做++ / ++i 则先做++再做赋
作者: adrianshum (Alien)   2015-02-01 17:22:00
楼上错误。Chikei 的解释才是正确观念

Links booklink

Contact Us: admin [ a t ] ucptt.com