看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): int a[][3] = {1,2,3,4,5,6}; int (*ptr)[3] = a; <--- 敢問大家 這是甚麼意思啊??? 是宣告ptr是一個二維的陣列, 而 她跟a其實都是一個[2][3] 的array嗎? 且date是一樣的 所以 ptr = a (都指向 {1,2,3,4,5,6}) ?? 是這個意思嗎? thx -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.11.180
Arton0306:不太一樣 ptr是一個指標 指向int[3]的陣列 11/14 20:25
diabloevagto:http://codepad.org/Vdeipufk 11/14 20:27
diabloevagto:可以參考這篇 http://ppt.cc/Tfr0 11/14 20:27
diabloevagto:你可以把(*ptr)[3]拆成兩部份來看 11/14 20:31
diabloevagto:前面的(*ptr)是指向a陣列的第一個維度 11/14 20:31
diabloevagto:後面的[3]就是表示每一個維度中有3個東西 11/14 20:32
diabloevagto:相信第一個for跟第三個for你應該都懂意思 11/14 20:33
diabloevagto:比較特殊的是第二個for,那個可以看成是當作起點的 11/14 20:33
diabloevagto:位置不同 11/14 20:34
poyenc:typedef is your good friend 11/14 20:34
diabloevagto:舉例來說,(*ptr + 5)[3],原本起點如果是(*ptr) 11/14 20:34
diabloevagto:表示起點是從[0][0]開始,但例子中是從[0][0]位置加 11/14 20:35
diabloevagto:5開始算,後面還有[3],就在改變過後的原點加上5 11/14 20:36
diabloevagto:然後我發現例子舉的不好...爆掉了= = 11/14 20:36
diabloevagto:如果有錯的地方請指教... 11/14 20:37
diabloevagto:typedef? 11/14 20:37
tropical72:ex, typedef int (*parr)[3]; 11/14 20:42
poyenc:樓上的太複雜了 11/14 20:47
diabloevagto:太深奧了... 11/14 20:50
poyenc:http://codepad.org/KHy56VNz 11/14 20:50
poyenc:看得懂 int 一維陣列的話也一定懂這個 11/14 20:52
diabloevagto:懂了!感謝 11/14 20:55
diabloevagto:我compiler出現錯誤 11/14 20:59
diabloevagto:redeclaration of 'int a [][3]'看一看又有點怪怪... 11/14 20:59
diabloevagto:#1ArUtk-Z 發現這篇有講到,在研究看看 11/14 21:01
james732:我跑 http://codepad.org/KHy56VNz 這個完全沒問題耶 11/14 21:01
diabloevagto:我貼到原本的程式名字重複= = 11/14 21:09
diabloevagto:http://ppt.cc/cnrd 這網站不錯 11/14 21:13