向数组添加常量

时间:2014-06-05 21:35:31

标签: c arrays const

我有这段代码:

const int a = 2;

const int arr[] = {
  1,a,3,4
};

但它给了我这个错误:

  

source.c:6:3:错误:初始化元素不是常量

如何向数组添加常量?

1 个答案:

答案 0 :(得分:4)

const int不被视为常量。

您必须使用实际数字或定义它。

#define FOUR 4

const int arr[] = {
   1,FOUR,3,4 
};

使用复合文字,可以使用变量初始化它:

const int value = 2 ;

const int *array[] = { &(int){1} , &value , &(int){3} , &(int){4} } ;

int main(void){

    printf("%d" , *array[1] ) ;

  return 0;
}

用于初始化数组((int){1})的未命名对象具有文件范围和静态存储持续时间。