可能重复:
什么是双星?
我对C相当陌生,并且遇到过这个声明
typedef char **TreeType
我很清楚 typedef 的作用,但我以前从未见过 char**。我知道 char* 是一个字符数组或类似于字符串。我不确定 char** 是二维字符数组还是指向字符数组的指针。我环顾四周,但找不到它是什么。如果您能解释一下 char** 是什么或指出我正确的方向,我们将不胜感激。
谢谢!:)
从技术上讲,char*
不是数组,而是指向 a 的指针char
。
同样,char**
是一个指向 a 的指针char*
。使其成为指向 a 的指针的指针char
。
C 和 C++ 都在幕后将数组定义为指针类型,所以是的,这个结构很可能是char
s 数组或字符串数组。
它是一个指向指针的指针,所以是的,在某种程度上它是一个二维字符数组。就像 achar*
可以表示一个 s 的数组一样char
,achar**
可以表示它指向一个char*
s 的数组。
好吧,char *
表示指向 char 的指针,它与 char 数组不同。
char amessage[] = "this is an array"; /* define an array*/
char *pmessage = "this is a pointer"; /* define a pointer*/
并且,char **
表示指向 char 指针的指针。
您可以查看一些有关指针和数组的详细信息的书籍。