下面三行描述了 const 與 pointer 的關係:
const char* pcstring = "some text"; // 常數字串,指標可以修改,內容無法修改 char* const cpstring = "some text"; // 常數指標,指標無法修改,內容可改 const char* const pstring = "some text"; // 指標與內容皆不能更改
註記:
C 語言在 ANSI C99 後支援 const 關鍵字,常被函式用來當做傳遞字串參數的宣告,這在 Linux 裡很常見,例如 fprintf 在 Linux 裡的原型宣告:
int fprintf(FILE *restrict stream, const char *restrict format, ...);
這裡的 const char* 表示該函式不會更動這個字串,是一種保護資料不被函式修改的方式。
沒有留言:
張貼留言