1.修飾的資料型別是常型別,常型別的變數或物件的值不能被改變
const
int i=10;
int a[i]
;//等價於int a[10];
2.便於進行型別檢查,使編譯對處理內容有更多的了解,消除了一些隱患。
3.方便的進行引數的調整和修改(類似於巨集定義)
4.可以保護被修飾的東西,防止被意外修改,增強程式的健壯性。
5.可以節省空間,避免不必要的記憶體分配(與巨集定義的本質區別)
define的作用是給出立即數,每次呼叫時需要進行記憶體分配,會有若干份拷貝
const定義常量從彙編角度來看,只是得出了對應的記憶體位址,所以,const定義的常量在程式執行過程中只有乙份拷貝。
6.提高了效率。
編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存和讀記憶體的操作,使得它效率也很高。
//陣列名是乙個const指標(int a等價於int *const a)
所以說不能a=b
7.const與指標
int
*const p=
&i;//p是const常量,不能再修改
*q=26
;//ok
q++;//error
const
int* p=
&i;//不能通過這個指標修改那個變數
*p=26
;//error (*p)是const常量
i=26;
//ok
p=&j;//ok
intconst
* p=
&i;(等價於const
int* p=
&i;)
8.轉換
可以把乙個非const得值轉換為const的
void f(const int* x);
int a=15;
f(&a);//ok
當要傳遞的引數型別比位址大的時候,這是常用的手段:既能用比較少的位元組數傳遞給引數,又能避免函式對外面的變數的修改。
這是傳遞結構體的常用方法
9.保護陣列值
函式內部可以修改陣列的值,為了保護陣列不被函式破壞,可以設定引數為const
const的詳細用法(C語言)
目錄 const的作用 const和指標的結合 const和引用的結合 const修飾的量為乙個常量即不能被修改的量如 int a 10 指定義了乙個變數a並初始化為10,但是後面可以對a的值進行修改。但是 const int a 10 指的是定義了乙個常量10,後面並不能被修改。注意 在c語言 c...
Const與Const的用法
const 是c 中常用的型別修飾符,常型別是指使用型別修飾符const說明的型別,常 型別的變數或物件的值是不能被更新的。const的作用 1 可以定義常量 即const int a 5 a就是乙個被const修飾的常量,它在程式執行期間是無法被改變的!2 保護被修飾的東西 例如乙個函式的首部為v...
const 詳細講解
const使用詳解 2005 11 15 16 47 02 關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,現將本人的一些體會總結如下,期望對大家有所幫助 一 const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 50...