const規則詳解

2021-08-18 16:55:05 字數 1140 閱讀 2213

總說const:

c語言當中,關鍵字const是用來定義變數,加了const修飾的變數,它的值只能讀,不能寫。也就是說const修飾的變數是乙個唯讀變數。在使用const 修飾變數時,它有以下的特點:

(1)資料型別對於const而言是透明的;

(2)const用於封鎖直接修飾的內容,將該內容變為唯讀;

(3)許可權只能同等傳遞或者縮小傳遞。

那麼,這些特點的具體表現是什麼呢?

第一:透明性

例如:int const ac = 100;

const int bc = 100;

當const修飾指標變數時,例如:

int const *p1 = ∾

const int *p2 =&bc;

在這裡,const放在資料型別符的前或者後它的意義都是一樣的

第二:唯讀性

此外在const修飾指標變數除了上面講的透明性中的兩種還有一種是:

int  a = 10;

int  *const p ;

此時的p是乙個指向int型的指標,被const修飾,宣告時必須同時初始化,之後不能修改p的值。也就是說,const此時直接修飾的是p,p只能做為右值,不能作為左值進行操作。

第三:同等傳限或縮小傳限,不能放大傳遞

總結:const用來修飾指標時,當const放在資料型別的前後時,此時的指標變數不能解引用去改變有const修飾的普通變數。

int const ca = 20;

int const *cp = &ca;//正確

*cp = 10;//錯誤。

當const放在*後邊時,此時的指標變數所指向的位址不能被修改。

int *const cp4 = &ca;//error

//該句const直接修飾cp4,cp4不能做左值,但可以對cp4解引用,可能修改ca的值,可ca不能寫入,所以錯誤

const用法詳解

物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安...

const使用詳解

const使用詳解 關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,現將本人的一些體會總結如下,期望對大家有所幫助 一 const基礎如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 500 const int a b 1 int...

const使用詳解

關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,現將本人的一些體會總結如下,期望對大家有所幫助 一 const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 500 const int a b 1 int const a ...