我已经创建了const指针的const数组,如下所示:
const char* const sessionList[] = {
dataTable0,
dataTable1,
dataTable2,
dataTable3
};
这个数组的常规非const指针的正确语法是什么?我以为它会const char**
,但编译器会另有想法。
答案 0 :(得分:6)
如果您确实需要指向数组的指针,正如标题所示,那么这就是语法:
const char* const (*ptr)[4] = &sessionList;
答案 1 :(得分:3)
const char* const sessionList[] = { ... };
最好写成:
char const* const sessionList[] = { ... };
sessionList[0]
的类型为char const* const
因此,&sessionList[0]
的类型为char const* const*
。
您可以使用:
char const* const* ptr = &sessionList[0];
或
char const* const* ptr = sessionList;
声明指向sessionList
元素的指针。如果要声明指向整个数组的指针,则需要:
char const* const (*ptr)[4] = &sessionList;
答案 2 :(得分:2)
与为数组元素声明的类型相同,添加了额外的*
:
const char* const *