我正在学习C++,我对数组有疑问(我还在研究这个主题,有些东西很清楚,而有些东西对我来说仍然有点晦涩难懂)。 我想知道这些声明是否合法,如果合法,它们如何影响新创建的数组:
假设我想创建一个整数数组(为简单起见):
我知道以下是合法的
int array[size];
其中size是一个常量表达式
还有这个
const int array[size];
这个声明意味着我可以读访问数组中的元素,但我不能分配给它们(int a=array[2]
是合法的,array[1]=10
是一个错误)。
像这样的“顶级”常量怎么样
int const array[size];
或
const int const array[size];
他们首先是合法的吗?如果是这样,它们是什么意思?本身不是数组常量,不可能分配给数组或复制初始化数组?
谢谢!
编辑:
我知道“顶级”和“低级”const 的含义(尽管我了解到我可以将 const 限定符放在基本类型说明符之前和之后,这不会改变任何东西)。我想知道的是定义一个 const 数组(我的意思不是 const 对象或变量的数组)如何改变事情。
最佳答案
下面两个语句是有效且相等的,
const int a[5]={1,2,3,4,5};
int const a[5]={1,2,3,4,5};
这是初始化常量数组的方法。
下面的声明给你一个语法错误。
const int const a[5];
关于c++ - const 限定符和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31981110/