C ++指向const指针的const数组的指针

时间:2016-06-23 18:00:12

标签: c++ arrays pointers

我已经创建了const指针的const数组,如下所示:

const char* const sessionList[] = {
    dataTable0,
    dataTable1,
    dataTable2,
    dataTable3
};

这个数组的常规非const指针的正确语法是什么?我以为它会const char**,但编译器会另有想法。

3 个答案:

答案 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 *