我有这段代码:
const int a = 2;
const int arr[] = {
1,a,3,4
};
但它给了我这个错误:
source.c:6:3:错误:初始化元素不是常量
如何向数组添加常量?
答案 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}
)的未命名对象具有文件范围和静态存储持续时间。