所以它好像意味着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