Re: [問題] 令我困惑的問題...請大家解惑

看板C_and_CPP (C/C++)作者 (鬼翼&娃娃魚)時間16年前 (2009/08/24 19:43), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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)

08/24 19:55, , 1F
那請問為何i=1呢?
08/24 19:55, 1F

08/24 19:58, , 2F
i 沒被改呀~
08/24 19:58, 2F

08/24 20:02, , 3F
b會等於 i-1之後 的值, 所以b=1 (所以i=2囉?)
08/24 20:02, 3F

08/24 20:05, , 4F
終於懂了...感謝大家 Orz
08/24 20:05, 4F

08/24 20:14, , 5F
i=1, 是因為前面i++過後i值+1了, 之後又--i過值-1回來.
08/24 20:14, 5F

08/24 20:14, , 6F
建議去把 i++ , ++i 前後置運算在幹麻給搞清楚:)
08/24 20:14, 6F

08/25 10:13, , 7F
原PO 其實只是不小心把j 寫成i 才會困惑
08/25 10:13, 7F

08/25 10:14, , 8F
你應該是要 b=--j; 吧
08/25 10:14, 8F
文章代碼(AID): #1AadpdeU (C_and_CPP)
文章代碼(AID): #1AadpdeU (C_and_CPP)