为什么指向char的指针是当前的?

为什么指向char的指针是当前的?,c,pointers,pointer-to-pointer,C,Pointers,Pointer To Pointer,我认为,第一句的结构如下图所示: 但是最后一句话,这个数组是否等于数组[0]? ptr指针指向数组[0],数组[0]指针指向字符? 如果这是正确的,我如何绘制此结构图?ptr是指向数组第一个元素的指针,ptr[0]或数组[0]是指向以null结尾的字符串的第一个元素的指针。我从中得到一张图表作为例证 使用此指令字符*数组[10]您正在声明(char*)的10个元素的数组,即char指针的数组 char**ptr=array是指向char的指针,如下面的模式(ptrisargv,arrayis

我认为,第一句的结构如下图所示:

但是最后一句话,这个数组是否等于数组[0]? ptr指针指向数组[0],数组[0]指针指向字符?
如果这是正确的,我如何绘制此结构图?

ptr是指向数组第一个元素的指针,ptr[0]或数组[0]是指向以null结尾的字符串的第一个元素的指针。我从中得到一张图表作为例证


使用此指令
字符*数组[10]您正在声明(char*)的10个元素的数组,即char指针的数组

char**ptr=array
是指向char的指针,如下面的模式(
ptr
is
argv
array
is
argc
):


第一个是指向字符的指针数组。该图是正确的,但通常在C语言中,因为惯例说“字符串”是一个字符数,最后是8位整数值零,为了通用性,您可以在第一个字符后绘制更多的字符。“ptr”是从顶部向下进入数组第一个单元格的箭头指针指向
数组[0]
这与
*数组
相同,所有涉及的指针都是指向
char
的指针。
char *array[10];

char **ptr = array;