C語言 const修飾指標解析

2022-04-04 04:27:32 字數 1276 閱讀 4777

這種例子在我們平時程式設計時可能會很少用,但是在面試時被問的可能性就很大了。

用const修飾指標,常見的情況可以分為四種:

1.const int *p; // p 可變,p 指向的物件不可變

2.int const *p; // p 可變,p 指向的物件不可變

3.int *const p; // p 不可變,p 指向的物件可變

4.const int *const p; //指標p 和p 指向的物件都不可變

可以看到,這四種情況面對的問題是p的值和p指向的值是否可以修改。

下面,我給出乙個例子,在例子中已經給出了詳細的注釋:

#include using namespace std;

int main(void)

這下是不是明白了很多,但是,這樣不好記啊,好吧,我現在講下應該怎麼去記下這些東西。

其實,我們需要做的並不是刻意記住每一種寫法代表的是什麼,這樣太累了,我們需要做的是好好觀察:

這裡,觀察的方式是「就近原則」,是觀察 const 和誰的位置比較近,因為 const 修飾的不能改變的變數,所以,離 const 近,那麼它就是不可改變的變數。

1.const int *p; // p 可變,p 指向的物件不可變

這裡,const 和 *p 最近 ,所以,*p 就是不可改變的,也就是值是不可改變的,p 的位址是可以改變的。

2.int const *p; // p 可變,p 指向的物件不可變

這裡,const 還是和 *p 最近,所以,是和第一種情況是一樣的。

3.int *const p; // p 不可變,p 指向的物件可變

這裡,const 和 p 最近,所以,情況就改變了,正好和前兩種情況相反,p 的位址是不能改變的,而p 指向的物件是可以變的。

4.const int *const p; //指標p 和p 指向的物件都不可變

這下就簡單的,const和 *p 和 p 都是最近的,所以,這兩個都是不能改變的。

說完了這些,是不是對const修飾指標很明白了!

指標修飾C語言const修飾符探秘指標修飾

ps 今天上午,非常鬱悶,有很多簡單基礎的問題搞得我有些迷茫,哎,幾天不寫就忘。目前又不當coo,還是得用心記 哦!c言語是我接觸的第一門序程設計言語,時當還很傻很無邪,後來敏捷被各種高階言語 但是不得不說,c的位置真的無可撼動。const修飾符在c言語中很用常,但是近最讀 的時候常常搞不清楚,索搜...

const修飾指標

1.指向const資料的非const指標 const int countptr 這個宣告從左到右讀,countptr 是乙個指向整數常量的指標 2.指向非const資料的const指標 int const ptr x 這個ptr指標就是const指標,宣告為const的指標必須在宣告時進行初始化。指...

const修飾指標

書寫形式為 int countptr 特點 指標的指向可以被修改,指向的資料可以被修改 includeint main 書寫形式為 const int countptr 特點 指標的指向可以被修改,指向的資料不能被修改 includevoid func const int int main void...