推 mikemike1021: &a 是 int** 吧? 05/17 15:41
推 Friend5566: 如果開的變數是陣列a[5] a跟&a[0]是pointer &a則是 05/17 16:19
→ Friend5566: double pointer 05/17 16:19
推 g0010726: 因為&a是指向一個陣列的pointer,跟int* 05/17 16:22
→ g0010726: 一個指向int的pointer 型態不相容,沒法自動轉換。 05/17 16:23
→ g0010726: 純粹兩個位址相同不代表可以直接assign 05/17 16:23
→ g0010726: 其實錯誤訊息很清楚了 就是型態無法轉換 05/17 16:23
→ g0010726: 另外樓上講的不太正確 &a 的型態是 int (*)[5] 05/17 16:27
→ g0010726: 指的是 a pointer (*) to an array [] of size 5 05/17 16:27
→ g0010726: containing integers 並不是什麼 05/17 16:27
→ g0010726: pointer to pointer (**) 05/17 16:27
→ tarantula: 謝謝大家解惑。跪 05/17 16:39
→ Lipraxde: 推薦個網站:cdecl.org 05/17 16:54
噓 simon860730: 紅明顯 借問一下 什麼是double pointer ?_? 05/21 14:43
推 OnlyRD: 怎麼會是&a?a = int [5] , &a 當然變成 pointer t 05/21 16:32
→ OnlyRD: o array of in 05/21 16:32
→ OnlyRD: t , 隱式轉型成int** . 去把 right-left rule 看一 05/21 16:32
→ OnlyRD: 遍,就全部搞 05/21 16:32
→ OnlyRD: 懂了。 05/21 16:32
推 OnlyRD: 如果要更進一步計較int** or int[5]* ,會在templa 05/21 16:37
→ OnlyRD: te裡面考慮, 05/21 16:37
→ OnlyRD: 有可能需要decay出場,否則在指標操作上,考慮隱式 05/21 16:37
→ OnlyRD: 轉換就好了。 05/21 16:37