所以它好像意味着a pointer to a constant pointer to char
。这是它指向一个char * const
,迄今为止很好。什么是char * const *?
让我困惑的是我在哪里以及如何看到它的使用。我一直在寻找的手册页qsort
和示例执行以下操作的指针转换为char **
(一个字符串数组)的元素,(指针元素视为const void *
)正常字符指针可供给到strcmp
:
static int
cmpstringp(const void *p1, const void *p2)
{
/* The actual arguments to this function are "pointers to
pointers to char", but strcmp(3) arguments are "pointers
to char", hence the following cast plus dereference */
return strcmp(* (char * const *) p1, * (char * const *) p2);
}
我的问题是,为什么会出现char * const *
?为什么它不只是一个const char **
(因为最终我们想发送const char *
到strcmp
)?
我一旦完成打字就得到了答案(D'oh) – Shahbaz
您应该查看http://cdecl.org/ - 它将“C乱码”转换为英文,反之亦然:) – Polynomial
@Polynomial , 是的,我知道。了解类型并不是一个真正的问题。我只是不知道如何在标题中提出这个问题的总结。随意编辑标题。 – Shahbaz