const 和 指標 組合在一起有2大 類,共4 種形式。
參考《c++ primer》
常量本身不能被修改,也不能通過指標去修改。
注意事項:只要所指的物件是常量,必須要用const放在* 左邊來修飾指標,而不能使用普通的指標。
const int i = 3;//定義乙個常量
const int j = 4;
const int *ptr = &i;// const 在 * 的左邊, 指向常量pi
int * ptr2 = &i;//錯誤,物件為常量時,必須使用const修飾,而不能使用普通的指標
pi = 4;//錯誤,常量本身不能被修改
*ptr = 4;//錯誤,也不能通過指標 ptr 改變 i 的值
ptr = & j;//正確,指標可以指向其他的位址
變數自身可以被修改,但是不能通過指標去修改變數的值.
int i = 3;//定義乙個普通變數
int j = 4;
const int *ptr = &i;// const 在 * 的左邊, 指向普通變數
pi = 4;//正確,普通變數自身可以被修改
*ptr = 42;//錯誤,不能通過 指標ptr 去修改普通變數 pi 的值
ptr = &j;//正確,ptr可以指向其他的位址
指標被初始化以後,不能再指向其他的物件。
該指標可以指向常量,並且不能用指標修改常量的值。如(1)中的注意事項所言,這種時候必須在* 前也要使用const來修飾,
const int i = 3;//定義乙個常量
const int j = 4;
// 第乙個const 在 * 的左邊, 代表指向常量i;第二個const在 * 的右邊並且ptr只能指向i,不能指向其他值;
const int *const ptr = &i;
*ptr = 4;//錯誤,不能通過指標 ptr 改變 i 的值,因為i 是常量。
*ptr = &j;//錯誤,常量指標ptr 只能指向 i,而不能指向其他的值
該常量指標可以指向變數。指標不能再指向其他的物件,但是可以通過該指標修改變數的值。
int i = 3;//定義乙個變數
int j = 4;
int * const ptr = &i;// const 在 * 的右邊, 並且ptr只能指向i,不能指向其他值;
*ptr = 4;//正確,可以通過常量指標 ptr 改變 變數 i 的值
*ptr = &j;//錯誤,ptr只能指向i,而不能指向其他的值
C const修飾引用和指標
測試 void constbeforefunction const double x,const std array d condition,const std array s condition 以下報錯 x 1.0 d condition at 0 1 d condition at 1 2 d ...
C const用法總結
const名叫常量限定符,用來限定特定變數,以通知編譯器該變數是不可修改的。使用const,可以避免在函式中對某些不應修改的變數造成可能的改動。非const 變數預設為extern,這樣就不可以被程式其它檔案訪問,要想const變數能夠被在其他的檔案中訪問,必須顯式地指定它為extern,如exte...
c const用法總結
看了好多博主寫的關於const的總結,總是仁者見仁,智者見智,好多博主都多多少少的有一些錯誤,在這總結一下c const的用法,我的文章中也可能會有錯誤,望指正!一.定義常量 1 const修飾變數 int const a 5 const int a 5 這兩種定義方法是一樣的,都是不希望a的值發生...