推 loveme00835:未看先猜會有人叫你不要問, 自己去編譯試看看 10/10 10:14
推 wixter:第一個是pointer to char 第二個是 pointer to char [20] 10/10 10:17
→ wixter:置底文就有啦! 10/10 10:17
推 loveme00835:陣列跟函式的定義方法比較特殊, 先來看 char *p[20] 10/10 10:22
→ loveme00835:左邊括起來會比較好幫助理解 → (char*) p[20] 這跟你 10/10 10:22
→ loveme00835:一般定義陣列的時候意思一樣, p 是一個陣列, 內含20個 10/10 10:23
→ loveme00835:元素, 每一個元素的型別為 char*(也就是指標to char) 10/10 10:24
→ loveme00835:不過一個指標的大小會依平台不一樣, char (*p)[20] 10/10 10:25
→ loveme00835:p 是一個指標, 指向一個陣列, 該陣列有20個元素, 元素 10/10 10:26
→ loveme00835:型態是 char, 指標的大小都是固定的, 不會因為指到的 10/10 10:27
→ loveme00835:型態而異 10/10 10:27
推 stupid0319:char (*p)[20] <從來沒用過,感覺好像自己都不會c++>"< 10/10 10:41
推 nowar100:怪不得覺得題目似曾相似,原來是別版有問過 Orz 10/10 10:43
→ nowar100:我不是想潑冷水,不過第一題隨便Goo應該都一堆答案 10/10 10:44
→ nowar100:2. array of char* 和 pointer to array 你應該就知道了 10/10 10:45
→ tinlans:其實考 2. 這種問題沒什麼意義,真的很少人這樣寫。 10/10 11:06
→ tinlans:真的要寫的,等遇到編譯錯誤的時候就自然會去找答案了。 10/10 11:06
→ tinlans:考 2. 跟考 char (* (*x())[])() 這東西感覺一樣無聊。 10/10 11:07
推 horngsh:其實2.也要知道比較好. 10/10 11:12
推 loveme00835:2. 中的 char (*p)[20] 小弟就常用, 需要視情況切換輸 10/10 12:17
→ loveme00835:入陣列或是輸出陣列, 讓中間處理的程式碼合併時就會用 10/10 12:18
→ loveme00835:的到, 不過在C++我都會改成物件參考 + ?: 來做 10/10 12:19
推 tomcallme:所以二是80&4bytes囉? 10/10 14:17
推 HudsonE:那為何不直接使用 char *p; 就好? 10/10 15:03
→ purpose:因為 p 是二維陣列 10/10 16:20
→ purpose:另外如果用 char **p; 則執行 p[1][0]; 取值就會抓錯值 10/10 16:21