const使用注意事項

2021-07-23 22:53:57 字數 1015 閱讀 1801

把*讀作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的值是可以被修改的,但是不能再指向其他變數

const int x=3; //則此時x為常量,不可進行再賦值

const

int *p=null;

intconst *p=null;//(兩種寫法完全等價)

int *const p=null;

const

int *const p=null;

intconst *const p=null;(這兩種寫法也是完全等價的)

int x=3; const

int *p=&x; *p=4

//錯誤,因為const指定的為*p;

p=&y;//(正確)`

int x=3; const

int *const p=&x; p=&y(錯誤,因為const指向的為p,只能為x的位址)

int x=3;const int &y=x; y=10

錯誤,y通過const限定只能為x的別名,值為3

即乙個可變指標不允許指向乙個不可變的常量,而乙個不可變的指標可以指向乙個可變的變數:

const

int x=3;

int *y=&x;

(這種寫法是錯誤的因為x本身定義為const,在用乙個可變的指標指向,那麼就有用指標改變x值得風險,這是系統所不允許的);

int x=3;

const

int *y=&x;

(正確,這樣保證了指針對x只有可讀性,而沒有可寫性)

const的注意事項

關於const 在c中是唯讀變數,可偷偷改變其值 而在c 中是常量,區域性const可以通過取位址來改變其值int p int a 因為區域性const放在棧區。typedef char pstr const char p1 a const pstr p2 a p1 正確,只是 p1不能改 p2 錯...

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

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

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

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