0%
const char
introduction
- Read the pointer declarations right-to-left.
- const 放在 type 前或後是相同的
const char * const * is the same as char const * const *: a (non-const) pointer to a const pointer to a const char.
const char * is the same as char const *: a (non-const) pointer to a const char.
const char * * is the same as char const * *: a (non-const) pointer to a (non-const) pointer to a const char.
brief
-
const X* p means “p points to an X that is const“: the X object can’t be changed via p.
-
X* const p means “p is a const pointer to an X that is non-const“: you can’t change the pointer p itself, but you can change the X object via p.
-
const X* const p means “p is a const pointer to an X that is const“: you can’t change the pointer p itself, nor can you change the X object via p.
const char* ptr; char const * ptr;
- 定義一個指向字元常量的指標
- ptr是一個指向 char* 型別的常量,所以不能用ptr來修改所指向的內容,換句話說,*ptr的值為const,不能修改
- 但是ptr的宣告並不意味著它指向的值實際上就是一個常量,而只是意味著對ptr而言,這個值是常量
- 實驗如下:ptr指向str,而str不是const,可以直接通過str變數來修改str的值,但是確不能通過ptr指標來修改。
char* const ptr;
- 定義一個指向字元的指標常數,即const指標
- 實驗得知,不能修改ptr指標,但是可以修改該指標指向的內容。
reference