詳解指標常量和常量指標(C C 工程師面試題)

2021-07-13 06:50:40 字數 2599 閱讀 3711

何為指標,其實指標也是一種資料型別,具有指標型別的變數稱為指標變數。指標變數用於存放記憶體單元位址。

c++提供了兩個與位址相關的運算子(「*」和「&」)。

特性:不能通過指標修改所指物件的值,但是指標本身可以改變,可以指向另外的物件。

例項1:此時p為常量指標。

#includeusing namespace std;

int main()

{ int a=10;

const int* p=&a; //指向常量的指標 ,不能通過指標來修改所指物件的值。但指標本身可以指向其他的物件。

cout<

執行結果:

例項2:常量指標,指標本身的值,可以改變,可以指向其他的物件。

#includeusing namespace std;

int main()

{ int a=10;

const int* p=&a; //指向常量的指標 ,不能通過指標來修改所指物件的值。但指標本身可以指向其他的物件。

cout<

執行結果:

例項3:常量指標,通過指標去修改其所指物件的值。(不可行,編譯器會報錯)

#includeusing namespace std;

int main()

{ int a=10;

const int* p=&a; //指向常量的指標 ,不能通過指標來修改所指物件的值。但指標本身可以指向其他的物件。

cout<

執行結果:(此處編譯器提示,分給p的記憶體空間為唯讀)

例項4:常量指標。不能通過指標來修改其所指向變數的值,但可以直接修改指標所指變數的值(即不通過指標,直接修改其值)。

#includeusing namespace std;

int main()

{ int a=10;

const int* p=&a; //指向常量的指標 ,不能通過指標來修改所指物件的值。但指標本身可以指向其他的物件。

特性:這時指標本身的值不能被修改,但可以通過指標修改其所指向變數的值。

例項1:通過指標型別的常量,修改其所指物件的值

#includeusing namespace std;

int main()

{ int a=10;

int* const p=&a; //指標型別的常量 ,指標本身的值不可以被改變,但可以通過它修改其所指物件的值。

例項2:指標型別的常量,不能將其指向其他的變數。(否則編譯器報錯)

#includeusing namespace std;

int main()

{ int a=10;

int* const p=&a; //指標型別的常量 ,指標本身的值不可以被改變,但可以通過它修改其所指物件的值。

常量指標:指向常量的指標。

指標常量:指標型別的常量。

C C 指標常量和常量指標

常量指標 常量指標是指向常量的指標,指標指向的記憶體位址的內容是不可修改的。常量指標定義 const int p a p 告訴編譯器是常量,不能將 p作為左值進行操作。但這裡的指標p還是乙個變數,它的內容存放常量的位址,所以先宣告常量指標再初始化是允許的,指標也是允許修改的,例如 int a 0,b...

常量指標和指標常量 C C

按英文的字面意思,從右向左理解就比較清楚了 const char pointer 常量指標 底層const pointer to const 字面意思 指向常量的指標,不能通過這個指標修改指向的內容 char const pointer 指標常量 頂層const const pointer 字面意思...

指標常量和常量指標詳解

關鍵點 形式 int const p const int p 定義 本質是乙個常量,而用指標修飾它。指標常量的值是指標,這個值因為是常量,所以不能被賦值。關鍵點 形式 int const p 定義 指向常量的指標常量就是乙個常量,且它指向的物件也是乙個常量。關鍵點 形式 const int cons...