作者VictorTom (鬼翼&娃娃魚)
看板C_and_CPP
標題Re: [問題] 令我困惑的問題...請大家解惑
時間Mon Aug 24 19:43:34 2009
※ 引述《moto889 (moto)》之銘言:
: 首先恕小弟不才
: 剛研究幾行程式(如下)
: ============================
: int main()
: {
: int i=1,j=1,a,b;
: a=i++;
a會等於 i+1之前 的值, 所以a=1.
: b=--i;
b會等於 i-1之後 的值, 所以b=1.
: printf("a=%d",a);
: printf("i=%d",i);
: printf("b=%d",b);
: system("pause");
: }
: =============================
: ~~ 輸出為a=1,i=1,b=1
: 問題是為什麼i不是2, b不是0呢??
: 請大家為我解答 謝謝
詳細情形情自己去查 i++ 與 ++i 的差別....
而且最近明明就有討論這些相關的問題:)
==
PS. 因為插行不好推文, 就直接騙一點P幣了XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.41.4
※ 編輯: VictorTom 來自: 220.134.41.4 (08/24 19:44)
推 moto889:那請問為何i=1呢? 08/24 19:55
→ windincloud:i 沒被改呀~ 08/24 19:58
→ moto889:b會等於 i-1之後 的值, 所以b=1 (所以i=2囉?) 08/24 20:02
→ moto889:終於懂了...感謝大家 Orz 08/24 20:05
→ VictorTom:i=1, 是因為前面i++過後i值+1了, 之後又--i過值-1回來. 08/24 20:14
→ VictorTom:建議去把 i++ , ++i 前後置運算在幹麻給搞清楚:) 08/24 20:14
→ jerrykk:原PO 其實只是不小心把j 寫成i 才會困惑 08/25 10:13
→ jerrykk:你應該是要 b=--j; 吧 08/25 10:14