[問題] 關於指標與函數的輸出問題

看板C_and_CPP (C/C++)作者 (狙擊王XD)時間14年前 (2012/03/30 20:42), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 我想請問一下各位大大,如果不論是否錯誤,下面code 最後輸出的結果是多少? 假設WW的記憶體位置是給1000的話,小弟我大概只知道AA(&WW); << 這個的輸出會是1004 然後BB(*WW); << 這個的輸出會是56, BB(&WW); <<這個的輸出是1040 可是兩個CC的輸出就不太確定了...如果以上有錯麻煩指證>"< 程式碼(Code):(請善用置底文網頁, 記得排版) main(){ int WW[10]; WW[0]=55; WW[1]=66 AA(&WW); BB(&WW); BB(*WW); CC(&WW); CC(*WW); .... } AA (int aa[]) {printf("%d\n",aa[0]+1)}; BB (int bb) {printf("%d\n",bb+1)}; CC (int cc[]) {printf("%d\n",cc+1)}; 補充說明(Supplement): 以上的code 是某次考試中的其中一題,他這題是問這些code最後的輸出會是什麼.. 目前卡在CC的輸出是甚麼... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.26.114.183 ※ 編輯: SogeKing 來自: 223.26.114.183 (03/30 20:44)

03/30 21:07, , 1F
這五個呼叫只有 BB(*WW) 是合理的...其他根本在亂搞 @@
03/30 21:07, 1F

03/30 21:09, , 2F
嘛 如果我沒搞錯出題者想問什麼的話 五個答案依序分別是
03/30 21:09, 2F

03/30 21:09, , 3F
56 1001 56 1004 59
03/30 21:09, 3F
感謝大大解答>"< (我也很好奇為什麼硬要出這種題目...語法都不通...= = 不過他是出題者,也只能盡量寫出她要的答案了~"~ ※ 編輯: SogeKing 來自: 223.26.114.183 (03/30 23:23)

03/31 02:09, , 4F
那個我想問一下,最後那四個是為什麼是這樣變化啊@@?
03/31 02:09, 4F

03/31 02:10, , 5F
EX:BB第一個,他存入WW的位址(1000),bb+1 是不是應該要
03/31 02:10, 5F

03/31 02:11, , 6F
因為int 占用4個位元,所以1000+4 = 1004 這樣嗎@@?
03/31 02:11, 6F

03/31 02:11, , 7F
還是我的理解有問題@@ 麻煩各位大大糾正了!!
03/31 02:11, 7F

03/31 02:13, , 8F
然後CC因為他是存陣列進去 所以cc+1 就等於ww[1]的位置
03/31 02:13, 8F

03/31 02:14, , 9F
就等於1004(INT+4)這樣,最後一個CC(&ww)我就真的不懂了
03/31 02:14, 9F
文章代碼(AID): #1FTQf5at (C_and_CPP)
文章代碼(AID): #1FTQf5at (C_and_CPP)