看起来你被双星迷惑了
void function(char ** keyword);
双星只是意味着这个函数希望你将一个指针传递给指向char的指针.此语法不包括任何有关您正在使用数组的事实的信息,或者char实际上是字符串中许多字符的第一个字符.知道这个char **实际指向什么样的数据结构是由程序员决定的.
例如,假设您的数组的开头存储在地址0x1000.函数的关键字参数的值应为0x1000.如果取消引用关键字,则会获取数组中的第一个条目,该字符串是char *,它指向字符串“float”中的第一个字符.如果你取消引用char *,你会得到char“f”.
(设计的)代码将如下所示:
void function(char **keyword)
{
char * first_string = *keyword; // *keyword is equivalent to keyword[0]
char first_char = *first_string; // *first_string is equivalent to first_string[0]
}
上面的例子中有两个指针.通过在取消引用之前向第一个指针添加偏移量,可以访问数组中的不同字符串.通过在取消引用之前向第二个指针添加偏移量,可以访问字符串中的不同字符.