推 stupid0319: 看到char **ptr,建議你還是換本書好了 04/04 13:55
推 kai5566: 一樓?為什麼? 04/04 15:40
→ stupid0319: 有兩顆*就會有三顆,四顆,沒完沒了啊,無法理解的用法 04/04 16:03
→ kai5566: .............這是什麼理由 04/04 16:04
→ mp8113f: 我也想知道為甚麼,還是char** ptr比較簡潔明瞭呢 04/04 16:04
→ mp8113f: 另外問題二我想了想,是不是因為直接對*ptr做加減不保險 04/04 16:05
→ mp8113f: 因為不一定會有stack區塊讓他存? 所以有些人可過有些不 04/04 16:06
→ stupid0319: 我常看MSDN,可是機乎都不會出現兩顆**的指標 04/04 16:15
→ stupid0319: 大部分都typedef成一個類型,這樣比較清楚 04/04 16:16
→ mp8113f: 那如果該宣告pointer to pointer,該怎麼寫比較專業 04/04 16:17
→ mp8113f: 了解我再研究這個方式看看,感謝 ! 04/04 16:17
→ mp8113f: 不過問題二還是不太清楚....囧 04/04 16:18
→ stupid0319: 應該對pointer定義成看的懂,易理解明確的名稱 04/04 16:19
→ stupid0319: 指標是新手的罩門呀,其實不用想太多,把指標看成變數 04/04 16:20
推 Bencrie: 最多就兩顆吧 04/04 16:21
推 ko27tye: 到底為什麼會到三顆四顆 最多就兩顆阿 04/04 21:12
推 ko27tye: 然後char**是強調型別為char**的ptr變數 04/04 21:18
→ ko27tye: char **ptr是char型別的雙重指標 兩個都可以 看你想法 04/04 21:19
推 ko27tye: 然後問題二 你這樣是把三個string變數記憶體位置扔給 04/04 21:27
→ ko27tye: ptr存,連續的是你的ptr 但那三個本來就不一定會連續 04/04 21:28
→ mp8113f: 我大致上懂了,所以若我要連續存,最好方法是 04/04 21:30
→ mp8113f: 我設定一個temp指標矩陣確保連續對吧? 04/04 21:31
推 ko27tye: 不用阿...你&ptr &(ptr+1) &(ptr+2)出來會連續沒錯 04/04 21:33
→ mp8113f: 沒事,我弄反了,string本身不連續所以這樣做不太保險 04/04 21:34
→ mp8113f: 感謝你的解說 ! 04/04 21:35
→ mp8113f: 若要確保三個字串連續那應該開個矩陣存這三串了 04/04 21:37
→ mp8113f: 就不能用分開的方式存入指標 04/04 21:37
推 ko27tye: yes 04/04 21:37
→ mp8113f: 了解,不過這題我編譯沒問題,但執行會意外錯誤, 04/04 21:49
→ mp8113f: 只能再找找是不是哪邊寫錯了 04/04 21:50
推 ko27tye: 指標可以存三種東西 0、某個物件的記憶體、另一個指標 04/04 22:02
→ ko27tye: 你那個temp沒指東西,然後ptr又指向它 很容易出錯的 04/04 22:03
→ mp8113f: 感謝k大指點,回去馬上debug 04/04 22:04
推 Caesar08: 如果你只學C,兩個*有存在必要,你不能這樣就把書丟掉 04/04 22:27
→ Caesar08: 但如果你用的是C++,那你就不會看到兩個*了 04/04 22:28
→ Caesar08: 總而言之,建議你學C++而不是C 04/04 22:30
→ mp8113f: 好的,下一個階段即是要準備學c + 04/04 22:56