下面是一个示例,我尝试在结构中为const指针分配一个const指针,编译器不会让我。但我可以指定一个没有任何问题的文字。如果你知道我的意思,我也试过这个例子,但是我仍然不明白为什么编译器对文字很酷,但是作为分配中char *的问题。为什么我不能将const指针分配给结构体中的const指针?
const char* cat_surname = "Snack";
typedef struct
{
const char* first;
const char* last;
}PET_T;
PET_T dog =
{
"Rover", // OK
"Cateater" // OK
};
PET_T cat =
{
"Tasty", // OK
cat_surname // ERROR :-(
};
我得到这个编译器错误:
error: initializer element is not constant
使用Arch Linux的gcc版本4.8.2 20140206(抢鲜)(GCC)
“const”限定的对象不是编译时常量。 – effeffe
当尝试用const来初始化变量时,错误“初始化元素不是常量”的可能的重复(http://stackoverflow.com/questions/3025050/error-initializer-element-is-not-constant-when-trying- to-initialize-variable-w) – effeffe
建议'const char cat_surname [] =“Snack”; PET_T cat = {“Tasty”,cat_surname};' – chux