常量对象的常量数组

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

我可以定义

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

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

我可以用

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

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

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

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


  1. 所以你有变量“指向int指针”,“指向常量int指针”,“指向int常量指针”,“指向常量int常量指针”。

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

const int Array[];