29

可能重复:
什么是双星?

我对C相当陌生,并且遇到过这个声明

typedef char **TreeType

我很清楚 typedef 的作用,但我以前从未见过 char**。我知道 char* 是一个字符数组或类似于字符串。我不确定 char** 是二维字符数组还是指向字符数组的指针。我环顾四周,但找不到它是什么。如果您能解释一下 char** 是什么或指出我正确的方向,我们将不胜感激。

谢谢!:)

4

3 回答 3

27

从技术上讲,char*不是数组,而是指向 a 的指针char

同样,char**是一个指向 a 的指针char*。使其成为指向 a 的指针的指针char

C 和 C++ 都在幕后将数组定义为指针类型,所以是的,这个结构很可能是chars 数组或字符串数​​组。

于 2012-11-13T00:31:05.587 回答
6

它是一个指向指针的指针,所以是的,在某种程度上它是一个二维字符数组。就像 achar*可以表示一个 s 的数组一样char,achar**可以表示它指向一个char*s 的数组。

于 2012-11-13T00:22:40.973 回答
3

好吧,char *表示指向 char 的指针,它与 char 数组不同。

char amessage[] = "this is an array";  /* define an array*/
char *pmessage = "this is a pointer"; /* define a pointer*/

并且,char **表示指向 char 指针的指针。

您可以查看一些有关指针和数组的详细信息的书籍。

于 2012-11-13T00:33:05.283 回答