Nei*_*eil 6 c++ arrays pointers
我已经创建了const指针的const数组,如下所示:
const char* const sessionList[] = {
dataTable0,
dataTable1,
dataTable2,
dataTable3
};
Run Code Online (Sandbox Code Playgroud)
这个数组的常规非const指针的正确语法是什么?我以为会是const char**,但编译器认为不然.
如果您确实需要一个指向数组的指针,正如标题所示,那么这就是语法:
const char* const (*ptr)[4] = &sessionList;
Run Code Online (Sandbox Code Playgroud)
const char* const sessionList[] = { ... };
Run Code Online (Sandbox Code Playgroud)
更好地写成:
char const* const sessionList[] = { ... };
Run Code Online (Sandbox Code Playgroud)
的类型sessionList[0]是char const* const.
因此, 的类型&sessionList[0]是char const* const*。
您可以使用:
char const* const* ptr = &sessionList[0];
Run Code Online (Sandbox Code Playgroud)
或者
char const* const* ptr = sessionList;
Run Code Online (Sandbox Code Playgroud)
它声明了一个指向 的元素的指针sessionList。如果你想声明一个指向整个数组的指针,它需要是:
char const* const (*ptr)[4] = &sessionList;
Run Code Online (Sandbox Code Playgroud)