下面是一個示例,我嘗試在結構中爲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