→ pttworld: 命令本身是一維形成可以多命令的命令列。11/06 11:54
→ stupid0319: 括弧是? (*argv)[]還是(*)argv[],還是(*)(*)argv?11/06 11:54
第一個, 就是新手13戒的第12點
※ 編輯: balaking (42.73.254.249), 11/06/2016 12:43:59
→ stupid0319: 原PO可能誤會了陣列宣告了,argv1本身就像pointer一樣 11/06 13:08
→ stupid0319: 但又不是pointer,但使用上跟pointer有87分像 11/06 13:10
→ balaking: 可是書裡是說沒括弧是array, 有括弧是pointer耶... 昏倒 11/06 13:33
→ stupid0319: 是這樣沒錯,但array存取跟pointer存取是一樣 11/06 13:52
→ stupid0319: 陣列傳遞就是你宣告的名稱,此時array就是個pointer 11/06 13:54
→ stupid0319: 書翻到陣列的章節多看一下 11/06 13:56
推 b0920075: array只有傳遞參數的時候才可以當成pointer看吧 11/06 15:12
推 LPH66: argv 的"二維陣列"型式不是直接一個二維陣列傳進來 11/06 16:06
→ LPH66: 而是一個「字元指標」的陣列, 各元素指向一個字元陣列 11/06 16:07
→ LPH66: 陣列和指標都可以使用 [] 存取, 但意義不一樣 11/06 16:08
推 EdisonX: 你講得對啊,傳給main的是 array of pointers 沒錯 , 只是 11/06 16:15
→ EdisonX: pointer 指向的內容是外部給的,app再複製到唯讀區,所以若 11/06 16:15
→ EdisonX: 你保證argc>=2時,可以直接 argv[1]="test",指向其他地方 11/06 16:16
→ EdisonX: 這樣沒錯啊 11/06 16:16
→ CoNsTaR: *argv[] 是先往右讀再往左讀 所以 *(argv[]) 才和沒有括 11/06 16:48
→ CoNsTaR: 號的 *argv[] 一樣是 array of pointer 11/06 16:48
→ CoNsTaR: (*argv)[] 就變成 pointer to array 了 11/06 16:48
→ balaking: 了解, 謝謝各位 11/06 17:10
→ balaking: 實務上函式參數是不是比較常設計成array of pointers, 11/06 17:21
→ balaking: 而pointer to array比較少用? 感覺後者的使用時機很少@@ 11/06 17:21
→ pttworld: 有星號就有pointer字,array of arrays看不到。 11/06 18:27
→ pttworld: 多個pointer是每個都指向,那是把指向物給理解成什麼。 11/06 18:28
推 longlongint: 建議把記憶體位置列出來 然後用excel玩填空遊戲(? 11/07 01:31