看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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