例如:
int b = 500;
const int * a = &b; //情況1
int const *a = &b; //情況2
int* const a = &b; //情況3
const int* const a = &b;//情況4
1)先看情況1
如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;
如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量。因此,1和2的情況相同,都是指標指向的內容為常量
(const放在變數宣告符的位置無關),這種情況下不允許對內容進行更改操作。
int b = 500;
const int * a = &b;
*a = 600;//錯誤,a的值不能修改
但是也有別的辦法去改變*a的值,乙個是通過改變b的值
int b = 500;
const int * a = &b;
b = 600;
cout<< *a<
還有一種改變*a辦法就是a指向別處
int b = 500,c = 600;
const int * a = &b;
a = &c;
cout<< *a《對應情況1,可以先不進行初始化。因為雖然指標內容是常量,但指標本身不是常量。
const int* a;//正確
2)情況2和情況1相同
3)情況3為指標本身是常量,這種情況下不能對指標本身進行更改操作,而指標所指向的內容不是常量
int b = 500,c = 600;
int* const a ;//錯誤,沒有初始化
int* const a = &b;//正確,必須初始化
*a = 600;//正確,允許改值
cout<< ++a<4)對於情況4為指標本身和指向的內容均為常量。
程式設計師面試 3 關於const修飾指標的情況
對於const修飾指標,一般有4中情況 1.const int a b 2.int const a b 3.int const a b 4.const int const a b 重點 如果const位於 的左側,則const則用來修飾指標所指向的變數,即指標指向的變數為常量,不能通過指標改變常量在...
指標傳遞的情況
在論壇裡經常見到一些新人對指標提出一些問題,作為乙個經歷過許多錯誤後的新手,我想把自己的經歷說出來,避免讓後來人繼續這樣的錯誤。在講解指標之前,需要理解一下記憶體空間。記憶體是隨機訪問器,計算機上電後便利用記憶體進行運轉。其有一定的容量,為了標識每個儲存單元的位置,我們為記憶體設定了記憶體位址。記憶...
使用 const 修飾的指標
在c 中,可以使用 const 來修飾乙個指標,如 第一種形式 const int ptr 第二種形式 int const ptr 第三種形式 const int const ptr 第一種形式,指示乙個指標不能修改指標所指向物件的內容,但可以修改指標所指向的物件 第二種形式,指示乙個指標不可以修改...