-1
我想了解爲什麼數組變量不能指向任何其他地方?爲什麼數組變量不能指向其他地方?
示例代碼:
char s[] = "How big is it";
const char *t = s;
這是代碼,我創建了一個樣本陣列s[]
併爲其分配一個值「它有多大」,現在我創造一個字符指針數組併爲它指定的值的地址。
現在,當我說這句話時,編譯器將引發我一個錯誤:
s=t; ----> compiler error
這是爲什麼?是否因爲字符串文字引用會丟失?
閱讀任何有關C編程的好書。你不能分配給一個數組(直觀地說,因爲's'的sizeof'比任何指針的sizeof'大很多,在我的機器上這個指針總是8。問問你自己,編譯器應該如何翻譯你正在編寫的東西! –
「現在我創建了一個字符指針數組」你沒有。您創建一個字符指針。 「爲什麼會這樣?是否因爲字符串字面引用會丟失?」不,那是因爲你不能分配給數組。 –
這是一個語言設計決定:數組不可分配。另外,數組不會*指向數據,它們*是數據。 – juanchopanza