c語言中我們可以使用const和define關鍵字宣告常量,所謂常量就是指值不能修改的量。如下面的例子所示:
int const a; const int a;
這兩條語句都把a宣告為乙個常量(整數),它的值不能被修改。
由於常量的值無法被修改,所以不能用任何其他東賦值給它,如此一來,怎樣使它在一開始就擁有乙個值呢?有兩種方法:
法1:在宣告時對其進行初始化,如下所示:
int const a = 15;
法2:在函式中宣告為const的形參在函式被呼叫時會得到實參的值。
int *pi;
pi是乙個普通的指向整形的指標
。而變數
int const *pci;
則是乙個指向整型常量的指標
。你可以修改指標的值,但你不能修改它所指向的值。相比之下:
int *const cpi;
則宣告pci為乙個指向整型的常量指標
。此時指標是常量,它的值無法修改,但你可以修改它所指向的整型的值。
int const * const cpci;
最後,在cpci這個例子裡,無論是指標本身還是它所指向的值都是常量,不允許修改。
當你宣告變數時,如果變數的值不會被修改,你應該在宣告中使用const關鍵字。這種做法不僅使你的意圖在其他閱讀你的程式的人面前得到清晰的展現,而且這個值被意外修改時,編譯器能夠發現這個問題。
備註:本文摘自《c和指標》中文版p38 - p39。
C語言之常量指標和指標常量
參考部落格 摘抄以上部落格內容 一 指標常量 1 首先是乙個常量,其次是用指標修飾的常量,一般表述為 int const p 指標常量2 指標指向的位置 位址 不能改變,指標本身是乙個常量,但是指標指向的內容 值 是可以發生改變的 3 通過 來進行演示如下 int a,b int const p a...
c語言之常量指標與指標常量
在c c 中用關鍵字const來定義乙個唯讀的變數和物件,它有如下的優點 1.fun const int var 不予許對傳入的引數進行修改,用於保護實參。2.有如有乙個巨集定義,或者類似於靜態變數,const int var2 1573,方便進行修改 3.節省記憶體,const定義只需占用一小塊記...
c語言之const和static關鍵字
作用 被修飾的內容為靜態變數,編譯時即分配儲存空間,程式執行過程中不再分配。修飾變數 當我們在定義沒有關鍵字的區域性變數的時候,他在記憶體中儲存的方式是動態的,在每次到達定義變數的程式位置,則為其分配儲存空間,跳出 塊即結束其生命期。而使用static關鍵字修飾區域性變數,他在記憶體中靜態儲存,在編...