常量指標與指標常量

2021-10-03 13:41:58 字數 1050 閱讀 1862

常量指標與指標常量是兩個很容易被混淆的概念,他們的核心是const關鍵字,

const限定乙個變數不允許被改變。const在一定程度上可以提高程式的安全性和可靠性。

一、常量指標

顧名思義,是乙個被常量修飾的指標,意味著const去修飾乙個*p,所以常量指標的本質是指標,表示這個指標時乙個指向常量的指標,因此指標指向的空間中的內容是不能改變的。指標常量通常的書寫格式如下:(兩種格式等價)

1)const int *p;

2)int const *p;

注:使用常量指標時要注意,指標指向空間的內容不可以通過指標來改變,但是可以使用原來的宣告去改變。但是這個指標可以被改變。如下:

const int a = 1;

const int b = 2;

const int *p1 = &a;

p1 = &b; // 雖然指標指向的常量不可以被改變,但是指標本身可以重新指向其他位址。

根據以上特性,指標常量可以不在初始化時賦值。而常量必須在初始化時賦值。

因此常量指標在區分時,*與變數之間是不會存在const的,即*左邊永遠有const。

二、指標常量

指標常量,指標來形容常量,顧名思義,指標常量本質為常量,說明這個常量的值是乙個指標。它的表現形式如下:

int a = 1;

int * const p = &a;

如上所示,p是乙個常量,它存放的是&a的值,也就是a的位址,那麼由於const p 的特性,所以指標常量中p的值不會改變,因此指向的物件不能更改,但是這個物件是可以被任意修改的。

三、指向常量的常量指標

綜合以上兩個概念,就可以產生乙個指向常量的常量指標,表現形式如下:(兩種方式等價)

const int a = 1;

const int b = 2;

const int * const p1 = &a;  

int const * const p2 = &b;

如上,乙個常量指標被const所修飾,首先說明了p1的值不會被改變,同時,該指標指向的物件也不會改變。因此這是乙個從指向空間與空間內的物件都被限制的定義。

指標常量與常量指標

指標常量與常量指標 指標常量是指定義的指標只能在定義的時候初始化,之後不能改變其值,格式如下 資料型別 const 指標常量名稱 例項如下 1char constp1 2int constp2 const 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...

常量指標與指標常量

首先,我告訴大家乙個小規則,就是像這樣連著的兩個詞,前面的乙個通常是修飾部分,中心詞是後面乙個詞,怎麼說呢。就像這裡的常量指標和指標常量。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。我再分開細細說明,常量指標,它是乙個指標,什麼樣的指標...

常量指標與指標常量

在c c 面試中經常會考到常量指標和指標常量,對初學者來說經常會分不清楚,參考網路上的資料,重新學習 記錄一下。常量指標 指向常量的指標,即指向的內容為常量,不可更改,但指標自身的值可以修改。常量指標常量 指標指向的內容不可改變,指標本身的值也不能改變。int a 3 int b 4 const i...