【发布时间】:2011-01-04 04:48:20
【问题描述】:
创建常量数组的常量数组的语法是什么?
我希望函数参数是常量char* 字符串的常量数组。
【问题讨论】:
标签: c++ arrays multidimensional-array constants
创建常量数组的常量数组的语法是什么?
我希望函数参数是常量char* 字符串的常量数组。
【问题讨论】:
标签: c++ arrays multidimensional-array constants
您可以将const 放在第一个星号的右侧,例如
void f(const char *const *argument)
或等效
void f(const char *const argument[])
对于更多维度,只需添加更多*consts(在这种情况下我不会使用[] 替代):
void f(const char *const *const *argument) // 2D array of strings
【讨论】:
const char* const* argument 这样的星号不是更清楚吗?
关键是把 C++ 倒写(从右到左):
char * const myVar[10] const;
...表示 myVar 是一个长度为 10 的 const 指向 char 的指针的 const 数组。
【讨论】:
这个问题有点不清楚:你想创建(定义)一个数组,还是传递它给一个函数?
定义常量C-strings的常量数组的语法是
const char array[2][14] = { "first string", "second string" };
要定义非字符串类型的常量数组的常量数组,初始化器不同:
const int array[2][3] =
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};
(如果合适的话,你应该把数组设为static const。)
【讨论】:
我相信那会是一个
const char* const array[size][size] = { /* initializer */ }
也就是说,一个由指向无法更改的字符的不可变指针组成的数组。
【讨论】: