推 sunhextfn: 陣列是一塊連續的記憶體空間,需要知道它起始於哪個位 02/18 16:51
→ sunhextfn: 和陣列有多少個元素。所以將陣列傳入函數時,通常要給 02/18 16:53
→ sunhextfn: 陣列的頭,也就是Deck[],和陣列的元素個數 02/18 16:55
→ sunhextfn: 如果fillDeck只是變動一張卡片的話,傳指標進去 02/18 16:59
→ sunhextfn: 可以修改一塊Card的suit和face。至於寫Deck[]也給過 02/18 17:04
推 sunhextfn: Const Card* wDeck 和 Card wDeck[]是幾乎一樣的 02/18 17:07
推 bben900911: ex:wdeck[13]就是先找到指標wdeck的起始位置 02/18 17:13
→ bben900911: 然後跳過13個位置 。所以回來看,單純的wdeck[]就是 02/18 17:14
→ bben900911: 指標 02/18 17:15
→ bben900911: 換句話說,前者你並沒有傳進一個陣列 只是傳指標 02/18 17:15
推 shaopin: 兩者在stack的使用上有沒有分別? 02/19 05:12
推 brett10592: 我也是新手 但聽說 直接運用pointer的運算 比用陣列下 02/19 09:04
→ brett10592: 標的運算 來的快 02/19 09:05
→ hergay: 謝謝各位熱心的大大回覆 所以照大家的說法應該是 02/19 11:24
→ hergay: 函式宣告時 Const Card* wDeck 和 Card wDeck[]兩者是一樣 02/19 11:25
→ hergay: 的囉? 謝謝大家! 02/19 11:26
推 jaid: 印象中兩種宣告都一樣 實際上都是傳指標 02/19 13:55
推 NilPtr: 上面的大大們有解答 不過這邊再提醒一下 C/C++ 傳原生陣列 02/21 02:28
→ NilPtr: 都是傳入第一個元素的指標,所以在函數內不能對陣列用 02/21 02:29
→ NilPtr: sizeof, 這個坑要小心 02/21 02:30
推 tanted: 小弟是否記錯 應該是Card* Const wDeck 和 Card wDeck[] 02/21 12:11
→ tanted: 才是一樣的 而不是 Const Card* wDeck 02/21 12:13