the 1st edition: 2018/5/8傳送陣列到函式時, 只傳指標過去, 這是什麼意思? 當然是字面上的意思。
char *str[10], 將 str 傳給 function 時, 是傳一個 pointer, 這個 pointer 指向 char*
ref: L38, L39
char str[5][10], 將 str 傳給 function 時, 是傳一個 pointer, 這個 pointer 指向 char [10]
所以一個要用 char** 接, 一個要用 char (*)[] 接
然後 int **argv 和 int*argv[] 是同樣的意思
但是
argv.c 這個範例我故意改用 int *argv[] 而不是 char *argv[], 因為 char *argv[] 又會讓情形更混亂, 所以最後我修改為 int *argv[]。
int *argv[]
int *str[10]
這個很有趣, 根據 *, [] 的優先順序, 這個應該是 int *(str[10]), 也就是 str 應該是 array, 可是 argv 卻不是 array, 而是指標, 不過 int *argv[] 只能寫在函式 prototype 裡頭。
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。