楼主:
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是指??
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:00i++ 为后序递增,故先做赋值,再做++ / ++i 则先做++再做赋