rel="file-list" href="file:///c:%5cdocume%7e1%5cadmini%7e1.chi%5clocals%7e1%5ctemp%5cmsohtml1%5c13%5cclip_filelist.xml">rel="file-list" href="file:///c:%5cdocume%7e1%5cadmini%7e1.chi%5clocals%7e1%5ctemp%5cmsohtml1%5c14%5cclip_filelist.xml">(1
)可以定義
const
常量例如:
const int max=100;
int array[max]; (2
)便於進行型別檢查
例如:void f(const int i)
編譯器就會知道
i是乙個常量,不允許修改;(3
)可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。
還是上面的例子,如果在函式體內修改了
i,編譯器就會報錯;
例如:void f(const int i)
(4)
為函式過載提供了乙個參考。
class a
file://
乙個函式
void f(int i) const file://
上乙個函式的過載
......
};(5)
可以節省空間,避免不必要的記憶體分配。
例如:#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
定義的常量在記憶體中有若干個拷貝。(6
)提高了效率。
編譯器通常不為普通
const
常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。 使用
const
a、修飾一般常量
,常陣列,常物件
修飾符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;
b、修飾指標
const int *a;
或int const *a; //const
修飾指向的物件,
a可變,
a指向的物件不可變
int *const a;
//const
修飾指標a,
a不可變,a指
向的物件可變
const int *const a; //指標a
和a指向的物件都不可變 c
、修飾引用
const double & v;
該引用所引用的物件不能被更新
(引用占用記憶體,記憶體中存放的是被引用物件的位址;)
d、修飾函式的返回值:
const
修飾符也可以修飾函式的返回值,是返回值不可被改變,格式
如下:const int fun1();
const myclass fun2();
(7)修飾類的成員函式:
const
修飾符也可以修飾類的成員函式,格式如下:
class c
int fun() const;//
類中的成員變數均為
const
型別.....
public:
int i;}
;這樣,在呼叫函式
fun時就不能修改類裡面的資料,如
int fun() const
再如:
int &fun() const
(8)修飾乙個返回引用的成員函式: 如:
int &fun()
在main()
c c(5);
c.fun() = 100;//
對此函式賦值;
但如果
const int &fun()
c.fun() = 100;//
試圖對此函式賦值,就會出錯,因為返回是個
const的//
引用了; 當然
const int &fun() const
(9)類成員資料的初始化
class c
~c(){}
public:
static const int m_nage = 10;//在vc
中不允許,在
vs2005
//中可以,值得關注這本身就是在
c++語法中是允許的(詳見
//c++primer)}
C C 中const用法小結
常型別是指使用型別修飾符const說明的型別,常型別的變數或物件的值是不能被更新的。因此,定義或說明常型別時必須進行初始化。概述 1.const有什麼用途?在 c程式中,const的用法主要有 定義常量 修飾函式引數 修飾函式返回值 等3個用處。在c 程式中,它還可以 修飾函式的定義體,定義類中某個...
轉貼 Const用法小結 C C
轉貼自const 用法小結 1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤 邊際效應 2.const 修飾類的資料成...
c c 中const用法總結
const型別定義 指明變數或物件的值是不能被更新,引入目的是為了取代預編譯指令 常量必須被初始化 cons的作用 1 可以定義const常量 例如 const int max 100 int array max 2 便於進行型別檢查 例如 void f const int i 編譯器就會知道i是乙...