變數的資料型別 const 修飾後變成「唯讀」,除了初始值外,不能再指定值。
char a[] = "test"; // 可修改的字串,配置 5 bytes 空間 (不考慮對齊的話)。
char *b = a; // 一個指標,可以動態指到不同的可改字串。
const char c[] = "Test"; // 內容為 const char 的陣列 (不能改的字串)
const char *d = a; // 內容為 const char *,是一個指標,而這個指標指到 const char。指標本身可以改,指標指到的內容不能改。可以動態指到不同的不可改字串,也可以指到可改字串 (變成不可改)。
b = (char *)d; //
char * const e; // const 修飾變數本身,而不是 char。一個不能改的指標,但指到的字串可以修改。
const char * const f; // 一個不能改的指標,指到的字串也不能修改。
const int &g=100; // 常數引用,即不能改變引用的值。
二維
const char e[][] = {"str1", "str12", "str123"}; // 3 * 7 的二維 char 陣列,內容不能變,e[0] 是 "str1"
const char *f[] = {"Str1", "Str12", "Str123"}; // 指標陣列,每個可以動態指到不同的字串。初始值使用的空間 5 + 6 + 7。
const char **g; // 一個指標
char * const h[];
參考
沒有留言:
張貼留言