常量指標和指標常量

2022-03-29 14:14:40 字數 2427 閱讀 9225

對於新手來說,指標在c語言裡總是乙個非常難以理解的概念。在這篇文章中,我們將解釋常量指標,指標常量,const pointer to const(ps:樓主以為這可以翻譯成指向常量的常量指標)的區別

讓我們先來理解什麼是常量指標。常量指標是指指標指向的位址是常量。換句話說,一旦常量指標指向了乙個變數,你不能讓該常量指標指向其他變數了

常量指標的宣告方法如下:

[html]view plain

copy

print

?<

type

of pointer

>

* const 

<

name

of pointer

>

常量指標宣告示例:

[html]view plain

copy

print

?int * const ptr;  

讓我們用一小段**來說明常量指標:

[cpp]view plain

copy

print

?#include 

intmain(

void

)    

在上面的例子中:

簡而言之,我們定義了乙個常量指標,並且試圖修改常量指標指向的位址

現在,讓我們來編譯這個程式:

從名字中就可以明顯得出,乙個指標,我們無法修改指標指向的內容,這種指標就叫做指標常量。對於這類指標,你可以修改指標指向的位址,但是不能修改指標指向的內容

指標常量的定義如下:

[html]view plain

copy

print

?const 

<

type

of pointer

>

* <

name

of pointer

>

或者[html]view plain

copy

print

?<

type

of pointer

>

const * 

<

name

of pointer

>

指標常量示例如下:

[html]view plain

copy

print

?const int *ptr;  

[html]view plain

copy

print

?int const *ptr;  

讓我們用一小段**來解釋指標常量:

[cpp]view plain

copy

print

?#include 

intmain(

void

)    

在上面**裡:

然後我們編譯上面的程式:

我們可以看到*ptr是唯讀屬性。這意味著,如果指標常量指向了乙個變數,我們不能修改該指標常量指向的值

如果你理解了上面兩種指標型別,那作為上述兩種指標的混合形態,你也應該非常好理解。指向常量的常量指標,你既不能修改指標的位址,也不能修改指標指向的內容

指向常量的常量指標定義如下:

[html]view plain

copy

print

?const 

<

type

of pointer

>

* const 

<

name

of pointer

>

示例:[html]view plain

copy

print

?const int * const ptr;  

讓我們寫一小段**來理解指向常量的常量指標:

[cpp]view plain

copy

print

?#include 

intmain(

void

)    

在上面**中:

當我們編譯這段**的時候:

指標 常量指標和指標常量

const關鍵字宣告乙個常量,常量宣告後不能修改。類似的,我們可以宣告常量指標 double radius 5 double const pvalue radius pvalue 4 可以修改其中pvalue是乙個常量指標,其宣告和初始化必須在同一條語句中,後面的程式不能為其賦予新的位址。注意,雖然...

常量指標 和 指標常量

在c 的學習中,有人經常搞不清楚 常量指標 和 指標常量 這兩個概念。其實簡單一點講,常量指標 所指向的位址上的資料是常量,而 指標常量 所指向的位址是常量,位址上面的資料是可以變化的。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。指標常...

常量指標和指標常量

定義 具有只能夠讀取記憶體中資料,卻不能夠修改記憶體中資料的屬性的指標,稱為指向常量的指標,簡稱常量指標。宣告 const int p int const p 注 可以將乙個常量的位址賦值給乙個對應型別的常量指標,因為常量指標不能夠通過指標修改內粗資料。只能防止通過指標引用修改記憶體中的資料,並不保...