如何在C(而不是C ++)中定义常量对象的常量数组?
我可以定义
int const Array [] = {
/* init data here */
};
但这是一个非常数对象的非常数数组。
我可以用
int const * const Array = {
/* init data here */
};
它可能会奏效。 但是有可能使用数组语法吗? (看起来更干净)
答案 0 :(得分:11)
数组不能“常量” - 这甚至应该是什么意思?在任何情况下,数组大小都是编译时常量,如果所有成员都是常量,那么你还想要什么?您试图排除哪种突变可能是const int[]
?
答案 1 :(得分:7)
“double constness”只适用于指针,因为它们可以更改为指向其他 1 ,因为数组的特性本身是静态的(数组的大小/类型不能更改) /指向别的东西)你可以申请的唯一const
是他们的元素。
int
的指针”,“指向常量int
的指针”,“指向int
的常量指针”,“指向常量的常量指针{ {1}}”。答案 2 :(得分:2)
如果你想要不修改数组的元素,只需使用:
const int Array[];