[問題] 關於(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