C++ C/C++;:常数数组的常数数组
创建常量数组的常量数组的语法是什么C++ C/C++;:常数数组的常数数组,c++,arrays,multidimensional-array,constants,C++,Arrays,Multidimensional Array,Constants,创建常量数组的常量数组的语法是什么 我想一个函数参数是常数的代码数组:char */c>字符串。 < p>这个问题的关键是写C++向后(右到左): …这表示myVar是指向char的const指针的const数组长度10。我相信这将是一个 const char* const array[size][size] = { /* initializer */ } 也就是说,指向无法更改的字符的不可变指针数组。您可以通过在第一个星号的右侧放置const来执行此操作,例如 void f(const ch
我想一个函数参数是常数的代码数组:char */c>字符串。 < p>这个问题的关键是写C++向后(右到左):
…这表示myVar是指向char的const指针的const数组长度10。我相信这将是一个
const char* const array[size][size] = { /* initializer */ }
也就是说,指向无法更改的字符的不可变指针数组。您可以通过在第一个星号的右侧放置
const
来执行此操作,例如
void f(const char *const *argument)
或同等地
void f(const char *const argument[])
对于更多维度,只需添加更多的*const
s(在这种情况下,我不会使用[]
选项):
问题有点不清楚:是要创建(定义)数组,还是将其传递给函数 定义常量C字符串的常量数组的语法如下 要定义非字符串类型的常量数组的常量数组,初始值设定项不同:
const int array[2][3] =
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};
(如果合适,您应该使数组
静态常量
)好的,谢谢。。。但是像这样的星号const char*const*参数
,不是更清楚吗?不,这种风格是误导和有害的。它给人的印象是星号绑定到左边,而实际上它们绑定到右边。
void f(const char *const *const *argument) // 2D array of strings
const char array[2][14] = { "first string", "second string" };
const int array[2][3] =
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};