具有来自另一个const数组的变量的Const数组

use*_*687 1 c arrays const

我有一个像这样的常数数组:

const int foo[NUM] = {
    9000,
    4400,
    620,
    480,
    1620
};
Run Code Online (Sandbox Code Playgroud)

如何创建另一个const数组,它将对来自foo的变量进行一些数学运算?我试过这个:

const int bar[NUM] = {
    foo[0] / (DEFINE1* DEFINE2),
    foo[1] / (DEFINE1* DEFINE2),
    foo[2] / (DEFINE1* DEFINE2),
    foo[3] / (DEFINE1* DEFINE2),
    foo[4] / (DEFINE1* DEFINE2)
};
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,它会返回错误:

所有元素的错误2('bar [0]'接近初始化)

对于所有元素,错误1初始化元素不是常量

cni*_*tar 5

C consts不是实常数,如本C FAQ中所述.因此,编译器只强制您不能写入它们.对于所有其他用途,它们不是常量(定义的方式).


旁注:这是C和C++不同的领域之一.在C++中const有一个明显不同的含义,更接近你正在尝试.