char**s与char*s [],何时以及如何使用每一个?

Mar*_*ujo 6 c pointers char

如果我使用char *s[],我可以执行以下操作:

char *s[] = {"foo", "bar", "foobar", "whatever", "john", "doe"};
Run Code Online (Sandbox Code Playgroud)

有什么区别**s?我如何使用char **s而不是char *s[]在那种情况下?

示例:int main (int argc, char **argv)代替*argv[]

sid*_*yll 7

对于功能参数,没有区别.

除此以外:

char *s[];
Run Code Online (Sandbox Code Playgroud)

s是一个指向char的指针数组.和

char **s;
Run Code Online (Sandbox Code Playgroud)

s是指向char的指针.

如果需要指向char的指针数组,则使用前者,如果需要指向char的指针,则使用后者.


Gri*_*gor 0

据我所知,**s是s的地址的地址,其中*s[]是数组s的地址,我认为你会在s中存储单个值,但在s[]中你会存储数组和数组本身是一个指针。希望这可以帮助!