總說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 ...