c++ - const 限定符和数组

标签 c++ arrays constants

我正在学习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/

相关文章:

c++ - 代码片段的页面错误

c++ - CMake的find_library()显然没有找到库

python - 使用 matplotlib 在折线图中查找不同形状的多个数组之间的值分布

java - 在Java程序中创建常量的最佳方式是怎样的?

c++ - 丢弃限定符访问类中 map 的 vector 时出错?

c++ - 编译嵌入在 C++ 代码中的 Julia

c++ - C++ 中多种数据类型的通用容器

arrays - Kotlin 不可变数组

java - 在 JAVA 中应该使用哪种数组类型,为什么?

ios - 如何使 NSConstraint 的长度根据设备大小按比例变化