【发布时间】:2015-08-13 06:37:02
【问题描述】:
我正在学习 C++,但我对数组有疑问(我还在研究这个主题,有些事情很清楚,而有些事情对我来说仍然有点晦涩难懂)。 我想知道这些声明是否合法,如果合法,它们如何影响新创建的数组:
假设我想创建一个整数数组(为了简单起见):
我知道以下是合法的
int array[size];
其中 size 是一个常量表达式
还有这个
const int array[size];
这个声明意味着我可以读取访问数组中的元素,但我不能分配给它们(int a=array[2] 是合法的,array[1]=10 是错误的)。
“顶级” const 怎么样
int const array[size];
或
const int const array[size];
它们首先是合法的吗?如果是这样,它们是什么意思?数组本身不是常量,不可能分配给数组或复制初始化一个数组吗?
谢谢!
编辑:
我知道“顶级”和“低级” const 的含义(尽管我了解到我可以将 const 限定符放在基本类型说明符之前和之后,这不会改变任何东西)。我想知道的是定义一个 const 数组(我的意思不是一个 const 对象或变量的数组)如何改变事情。
【问题讨论】:
-
int const和const int的意思完全一样。见Const before or const after? -
你自己试过了吗?
-
一个好的助记符是永远不要把
const放在前面,然后const将放在常量后面(并不是说它在这里很有用,但是加上几个星号和&符号,你会看到是你的标题)。将const放在前面与将const放在int后面是一样的。