C const使用說明

2021-06-05 12:31:15 字數 2205 閱讀 6522

**:

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

**************常量必須被初始化*************************

cons的作用

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

const int max=100;

int array[max];        

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

void f(const int i) 

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

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

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

例如: 

void f(const int i) 

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

class a

file://乙個函式

void f(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常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。

使用const

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

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

int const x=2;  或  const int x=2;

int const a[5]=;    或  const int a[5]=;

class a;      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 int fun1(); 

const myclass fun2();

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

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

class classname 

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

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

extern const int i;     //正確的引用

extern const int j=10;  //錯誤!常量不可以被再次賦值

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

class a

;初始化類內部的常量

1 初始化列表:

class a

private:

const int i;

};2 外部初始化,例如:

class a

private:

static const int i;  

};const int a::i=3; 

使用說明 附註工具使用說明

附註工具使用說明 附註工具用途 附註工具主要用於更新利用word附註應用程式生成的帶域 的附註,該工具在word右鍵 更新鏈結 的基礎上進行了優化,故在使用時,不能再利用word右鍵 更新鏈結 而要用本工具的 更新當前鏈結 或 更新所有鏈結 使用說明 一 更換路徑 當利用word附註應用程式生成帶域...

使用說明 農用遮光網使用說明

農用遮光網使用說明 建築防塵網購買方 建築施工企業 在購買建築防塵網時,應該對 作出比較,可以分辨品牌 型號,且購買時應該在一定程度上了解信譽良莠。建築防塵網購買方 市場售賣方 在選購建築防塵網時,可以把 作為基礎,好的 可以用來彌補信譽不足,而差的 則需要按照你的服務收費。農用遮光網使用說明 用途...

Hibernate tools 使用說明

05年的8月份第一次接觸hibernate tools,使用起來感覺還不錯,但也沒有深入研究,後來由於一直在做乙個專案,再後來用了一陣myeclipse,現在換了公司,使用wtp all in one eclipse的乙個版本 生成domain的時候使用了hibernate tools,發現都不知怎...