const的注意事項

2021-07-10 02:34:14 字數 576 閱讀 8877

關於const:

在c中是唯讀變數,可偷偷改變其值;

而在c++中是常量,區域性const可以通過取位址來改變其值int *p = (int *)&a;,因為區域性const放在棧區。

typedef

char* pstr;

const

char *p1 = "a";

const pstr p2 = "a";

p1++; //正確,只是*p1不能改

p2++; //錯誤,pstr是新型別,p2不可改

int a;

int *const p1; //錯誤,必須賦初值如int *const p1 = &a;

intconst *p2; //正確,可以不賦初值

int *const p3 = &a, p4;

/*(*const p3)是整體,所以這裡的p4其實只是個整型變數,不是指標;

對於*p3可以修改其值,p3不可改,實現指針對a的位址鎖定,可改值不可改向*/

const使用注意事項

把 讀作pointer to然後從後往前讀.int const p 可以讀作 p is a pointer to const int,p是指向常量的指標 int const p 可以讀作 p is a const pointer to int,p是指向int型的常指標,此時 p的值是可以被修改的,但...

c 常量(const) 使用的注意事項

在我們編碼的過程 const 是我們經常用到的一種宣告型別,如果不了解const的執行機制,有時候會發生一些莫名其妙的bug,可能讓我們掉入深坑中。接下來我們一起看看常量的應用吧!1.常量預設是靜態型別,所以不能和static一起使用 2.常量是在編譯時計算的,它的表示式中不能包含變數 如 cons...

c 常量(const) 使用的注意事項

在我們編碼的過程 const 是我們經常用到的一種宣告型別,如果不了解const的執行機制,有時候會發生一些莫名其妙的bug,可能讓我們掉入深坑中。接下來我們一起看看常量的應用吧!1.常量預設是靜態型別,所以不能和static一起使用 2.常量是在編譯時計算的,它的表示式中不能包含變數 如 cons...