我有这个函数,它接受一个数组的指针(为了从函数内修改它)
int func_test(char *arr[]){
return 0;
}
int main(){
char var[3];
func_test(&var);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译这个时,我得到:
passing argument 1 of ‘func_test’ from incompatible pointer type
Run Code Online (Sandbox Code Playgroud)
为什么会出现这个问题,以及在这种情况下如何将指针传递给该数组呢?
char * arr[]不是指向数组的指针; 它是一个指针数组.首先从标识符向右读取C中的声明,然后从标识符向左读取.所以:
char * arr[];
// ^ arr is...
// ^ an array of...
// ^ pointers to...
// ^ char
Run Code Online (Sandbox Code Playgroud)