在下面的函数声明中,第一个参数是一个字符串,具体来说,是一个字符数组,第三个参数是一个指向整数的指针。第二个参数是指向字符数组的指针吗?换句话说,指向指针的指针?我在阅读了相关问题的答案后发现了这一点:Difference between passing array and array pointer into function in C
void setup(char inputBuffer[], char *args[], int *background) {...}
换句话说,*args[]是否等同于**args?
非常感谢!
最佳答案
是的,在将参数传递给函数时,char *args[]
等同于 char **args
。
在第一个参数 char inputBuffer[]
中,该函数实际上接收的不是整个 char
数组,而是一个指针变量,其中包含其第一个元素的地址。
在第二个参数 char *args[]
中,类似地,函数接收的不是指向 char
的整个指针数组,而是一个保存地址的指针变量的第一个元素。在这种情况下,元素本身就是一个指针。因此,该函数接收一个指向 char
指针的指针,相当于 char **args
。
关于c - 将指向 char 数组的指针作为参数传递给函数 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28032885/