作者:
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 則先做++再做賦