看板 C_and_CPP 關於我們 聯絡資訊
各位版友好 在傳遞二維陣列給foo的時候: void foo(char str[][11]){ } int main(){ char str[11][11]; foo(str) } 請問為什麼在foo的參數列上面 要用str[][11] 為什麼不需要指定第一個[]的upper bound 而只要去指定第二個[]的upper bound(也就是 指定[11]) 謝謝各位版友的指教 -- ~宅男的四個徵兆~ ∠□ ○ ! * \○/ ★    (○ ? ╦╦└□ " ○□═ □   □> ║║√√ ╦══╦ ∥    |\ 一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.253.14 ※ 編輯: Arim 來自: 122.121.253.14 (08/05 21:16)
EdisonX:說來話長... 08/05 21:26
suhorng:如果你有很多個維度的話 也只有第一個維度不用指定 08/05 21:42
suhorng:剩下後面的全部都要指定 08/05 21:42
purpose:參數傳陣列,不支援,只能傳指標。str[][11] 用來表示傳指 08/05 22:02
purpose:標位址,背起來就好了 08/05 22:03
記得之前上程式語言是說 只傳第二個index的原因是因為 用第二個index就可以把每個陣列的開頭的位置給算出來 比如說第str[1][0]可以由&(str[0][0])+4*11算出來,4是假設每個element佔4個byte 不過我也不太清楚這樣對不對@@ 多維的情況又更複雜了 ※ 編輯: Arim 來自: 122.121.253.14 (08/05 22:12) ※ 編輯: Arim 來自: 122.121.253.14 (08/05 22:13)
EdisonX:我覺得我回的東西你在補充裡就講完了 Orz 08/05 22:16
purpose:不是就可以,我再強調,不能、沒有辦法、無能為力,直接 08/05 22:24
purpose:傳送一個陣列當作參數,所以退而求其次,用指標 08/05 22:25
damody:P大國文好猛>.< 08/05 22:30
flyfoxy:這個東西昨天才在soft_job的[賞書]Expert C Programming 08/06 17:05
flyfoxy:Deep C Secrets 有提到 08/06 17:05
EdisonX:那真的是一本好書啊 !! 08/06 19:15
singlovesong:不是背起來就好吧.後面的size都要給是因為這樣 08/08 22:39