char**
是指向char*
的指针。这意味着char**
的值是char*
的地址。 char*
的值是存储在内存中的字符数组中第一个元素的地址。
所以在下面的代码中:
char* words[3];
是一个包含3个字符数组指针的数组,即char*
。char** ppc;
是指向char*
我的问题是,当ppc = words
是words
的数组时,如何指定char*
。
char* words[LENGTH];
int main(int argc, char **argv) {
char** ppc;
words[0] = "one";
words[1] = "two";
words[2] = "three";
for (int i =0; i < LENGTH; i++) {
printf("%s\n", words[i]);
}
ppc = words;
return 0;
}
答案 0 :(得分:2)
在大多数情况下,数组可以衰减指向数组第一个元素的指针。
在此示例中,words
是指向char
的指针数组,即它具有类型char *[]
。此数组的元素的类型为char *
,因此ppc = words
会将&words[0]
char **
分配给ppc
。