c c 中const用法總結

2021-09-29 16:50:15 字數 2693 閱讀 1397

const型別定義:指明變數或物件的值是不能被更新,引入目的是為了取代預編譯指令

常量必須被初始化

(1)可以定義const常量 例如:

const

int max=

100;

int array[max]

;

(2)便於進行型別檢查 例如:

voidf(

const

int i)

編譯器就會知道i是乙個常量,不允許修改;

(3)可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。

還是上面的例子,如果在函式體內修改了i,編譯器就會報錯;

例如:

voidf(

const

int i)

(5) 為函式過載提供了乙個參考。

class

a file:

//乙個函式

voidf(

int i)

const

file:

//上乙個函式的過載

......}

;

(6) 可以節省空間,避免不必要的記憶體分配。 例如:

#define pi 3.14159         file://常量巨集

const doulbe pi=

3.14159

; file:

//此時並未將pi放入rom中..

....

double i=pi; file:

//此時為pi分配記憶體,以後不再分配!

double i=pi; file:

//編譯期間進行巨集替換,分配記憶體

double j=pi; file:

//沒有記憶體分配

double j=pi; file:

//再進行巨集替換,又一次分配記憶體!

const定義常量從彙編的角度來看,只是給出了對應的記憶體位址,而不是象#define一樣給出的是立即數,所以,const定義的常量在程式執行過程中只有乙份拷貝,而#define定義的常量在記憶體中有若干個拷貝。

(7) 提高了效率。

編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。

(1)修飾一般常量,常陣列,常物件

修飾符const可以用在型別說明符前,也可以用在型別說明符後。 例如:

int

const x=

2;  或  const

int x=2;

intconst a[5]

=; 或 const

int a[5]

=;classa;

const a a; 或 a const a;

(2)修飾指標

const

int*a; 或 int

const

*a;//const修飾指向的物件,a可變,a指向的物件不可變

int*

const a;

//const修飾指標a, a不可變,a指向的物件可變

const

int*

const a;

//指標a和a指向的物件都不可變

(3)修飾引用

const

double

& v; 該引用所引用的物件不能被更新

(4)修飾函式的返回值:

const修飾符也可以修飾函式的返回值,是返回值不可被改變,格式如下:

const

intfun1()

;const myclass fun2()

;

(5)修飾類的成員函式:

const修飾符也可以修飾類的成員函式,格式如下:

class

classname

這樣,在呼叫函式fun時就不能修改類裡面的資料

(6)在另一連線檔案中引用const常量

extern

const

int i;

//正確的引用

extern

const

int j=10;

//錯誤!常量不可以被再次賦值

*******************放在類內部的常量有什麼限制?

class

a;

初始化類內部的常量

1 初始化列表:

class

aprivate

:const

int i;

};

2 外部初始化,例如:

class

aprivate

:static

const

int i;

}; const

int a::i=

3;

c c 中const用法總結

const型別定義 指明變數或物件的值是不能被更新,引入目的是為了取代預編譯指令 常量必須被初始化 cons的作用 1 可以定義const常量 例如 const int max 100 int array max 2 便於進行型別檢查 例如 void f const int i 編譯器就會知道i是乙...

c c 中const用法總結

const型別定義 指明變數或物件的值是不能被更新,引入目的是為了取代預編譯指令 常量必須被初始化 cons的作用 1 可以定義const常量 例如 const int max 100 int array max 2 便於進行型別檢查 例如 void f const int i 編譯器就會知道i是乙...

c c 中const用法總結

const型別定義 指明變數或物件的值是不能被更新,引入目的是為了取代預編譯指令 常量必須被初始化 cons的作用 1 可以定義const常量 例如 const int max 100 int array max 2 便於進行型別檢查 例如 void f const int i 編譯器就會知道i是乙...