指向C中的数组问题

use*_*906 2 c arrays pointers

我有这个函数,它接受一个数组的指针(为了从函数内修改它)

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)

为什么会出现这个问题,以及在这种情况下如何将指针传递给该数组呢?

Aas*_*set 5

char * arr[]不是指向数组的指针; 它是一个指针数组.首先从标识符向右读取C中的声明,然后从标识符向左读取.所以:

    char * arr[];
//         ^ arr is...
//            ^ an array of...
//       ^ pointers to...
//  ^ char
Run Code Online (Sandbox Code Playgroud)