我正在学习C++而且我对数组有疑问(我还在研究这个主题,有些事情很清楚,而有些事情对我来说似乎有些模糊).我想知道这些声明是否合法,如果是,它们如何影响新创建的数组:
让我们假设我想创建一个int数组(以保持简单):
我知道以下是合法的
int array[size];
Run Code Online (Sandbox Code Playgroud)
其中size是常量表达式
还有这个
const int array[size];
Run Code Online (Sandbox Code Playgroud)
这个声明意味着我可以读取 - 访问数组中的元素,但我不能分配给它们(int a=array[2]是合法的,array[1]=10是一个错误).
怎么样的"顶级"const喜欢
int const array[size];
Run Code Online (Sandbox Code Playgroud)
要么
const int const array[size];
Run Code Online (Sandbox Code Playgroud)
他们首先是合法的吗?如果是这样,他们是什么意思?不是一个数组常量本身,是不可能分配给一个数组或复制初始化一个?
谢谢!
编辑:
我知道什么是"顶级"和"低级"const意味着(虽然我知道我可以在基本类型说明符之前和之后放置const限定符,但不会改变任何东西).我想知道的是如何定义一个const数组(我的意思是不是一个const对象或变量数组)改变了一些东西.
以下两个陈述是有效和平等的,
const int a[5]={1,2,3,4,5};
int const a[5]={1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)
这是初始化常量数组的方法.
以下声明为您提供语法错误.
const int const a[5];
Run Code Online (Sandbox Code Playgroud)