2

Achar**是指向 a 的指针char*。这意味着 a 的值是 achar**的地址char*。a 的值char*是存储在内存中的字符数组中第一个元素的地址。

所以在下面的代码中:

  • char* words[3];是一个包含 3 个指向字符数组的指针的数组,也就是char*.
  • char** ppc;是一个指针char*

我的问题是你如何分配ppc = words什么时候words是一个char*s数组。

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;

}
4

1 回答 1

2

在大多数情况下,数组可以衰减为指向数组第一个元素的指针。

在本例中,words是指向 的指针数组char,即它的类型为char *[]。该数组的一个元素具有类型char *,因此ppc = words&words[0]具有类型的 赋值char **ppc

于 2017-10-09T12:53:10.127 回答