VC const修飾指標的情況介紹

2021-07-24 01:20:26 字數 956 閱讀 6647

例如:

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 第一種形式,指示乙個指標不能修改指標所指向物件的內容,但可以修改指標所指向的物件 第二種形式,指示乙個指標不可以修改...