常量对象的常量数组

时间:2011-10-03 10:28:02

标签: c arrays const

如何在C(而不是C ++)中定义常量对象的常量数组?

我可以定义

int const Array [] = {
    /* init data here */
};

但这是一个非常数对象的非常数数组。

我可以用

int const * const Array = {
    /* init data here */
};

它可能会奏效。 但是有可能使用数组语法吗? (看起来更干净)

3 个答案:

答案 0 :(得分:11)

数组不能“常量” - 这甚至应该是什么意思?在任何情况下,数组大小都是编译时常量,如果所有成员都是常量,那么你还想要什么?您试图排除哪种突变可能是const int[]

答案 1 :(得分:7)

“double constness”只适用于指针,因为它们可以更改为指向其他 1 ,因为数组的特性本身是静态的(数组的大小/类型不能更改) /指向别的东西)你可以申请的唯一const是他们的元素。


  1. 所以您有变体“指向int的指针”,“指向常量int的指针”,“指向int的常量指针”,“指向常量的常量指针{ {1}}”。

答案 2 :(得分:2)

如果你想要不修改数组的元素,只需使用:

const int Array[];