常量指標和指標常量

2022-08-04 20:03:13 字數 1105 閱讀 8446

[ "常量指標和指標常量")

### 參考c++primer p110 *指標和const限定符*

const和int的前後順序不影響

const int * p =int const *p

和int* const p

cons int *p const 在前 所以是常量指標

常量指標p:指向的位址可以變,但內容不可以重新賦值,內容的改變只能通過修改位址指向後變換。 

const int *p = (const int) * p p指標 指向 const int

當然也可給其賦值非const int 的值的位址

**const 這裡修飾的int  而不是 p 可以通過 const int temp 給p 賦值,

也可以int temp 給p 賦值,因為const 修飾的是指標,所示p的值可以改變**

```const int * p;

int temp1=1;

const int temp2=1;

p=temp1;//ok

p=temp2;//ok

```p是乙個指標 指向的乙個const int *

所以 p可以指向 const int a ;也可以指向const  int b;

就是p所指向的位址是可以改變的,但不可以通過 *p來改變這個指向的值。

而int * const p 

指標在前,所以是指標常量 

const修飾p 這裡p 是乙個int * ,所p所指向的位址是不能改變的

!(```int a =3; 

int b = 1; 

int c = 2; 

int const *p1 = &b;//const 在前,定義為常量指標 

int *const p2 = &c;//*在前,定義為指標常量

// p1 = &a是正確的,但 *p1 = a是錯誤的。

// p2= &a是錯誤的,而*p2 = a 是正確的。

//被常量指標修飾期間,該值不能被修改 

/*如果p1被賦值了乙個非const變數,那麼不能通過p1來修改這個變數值,但可以通過其他方式來修改此

變數的值,這是p1所指向的值會隨之發生改變*/

```

指標 常量指標和指標常量

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

常量指標 和 指標常量

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

常量指標和指標常量

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