const的詳細用法

2021-09-19 12:00:50 字數 1133 閱讀 5245

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