[理工] 北科程設
北科程設的基本問題,我稍微簡化一下
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
03/02 20:59, 1F
→
03/02 21:22, , 2F
03/02 21:22, 2F
推
03/04 01:26, , 3F
03/04 01:26, 3F
→
03/04 01:27, , 4F
03/04 01:27, 4F