[理工] 北科程設

看板Grad-ProbAsk作者 (保持好心情)時間13年前 (2011/03/02 15:47), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
北科程設的基本問題,我稍微簡化一下 1. int i = 5; printf("%d\n", i++);//#1 2. test(){ int i = 5, j = 4; printf("%d\n", f1(i++));//#2 printf("%d\n", f2(j,i));//#3 } f1(int a){ return a++; } f2(int a, int b){ return (a-b); } 考卷上是用printf,我自己寫是用cout,應該是沒差吧?! #1_out_put: 5 #2_out_put: 5 #3_out_put: -2 我的解釋是它在 i++ 的時候並未將結果放入 i,當這行執行結束才會把 i 增加1 所以#1,2 才會out put i 而不是 i++ #3 out put 因上一行執行結束 i 值才增加 當然這是我腦內補完的解釋,有請神人指正或是同意 至於第二大題有物件導向的程式,error 還沒修改完.......慘了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.118.69

03/02 20:59, , 1F
run看看debug?
03/02 20:59, 1F

03/02 21:22, , 2F
我 run 過幾次,但心裡還是會存疑,所以問看看有沒神人答案
03/02 21:22, 2F

03/04 01:26, , 3F
就如同你所解釋的阿 i++為先傳值再自我修改
03/04 01:26, 3F

03/04 01:27, , 4F
另外 printf適用C/C++ cout只適用C++(我沒在C style看過)
03/04 01:27, 4F
文章代碼(AID): #1DRVOgtN (Grad-ProbAsk)