1.const常量和巨集常量
const int max=100;
#define max 100;
const常量相對巨集常量有兩個有點:
1)有型別安全檢查
2)占用記憶體空間少
2.const變數在記憶體中的位置
我們在c程式的記憶體布局中,已經通過示例進行了說明
#include constint a = 10; ///
/全部常量a
intmain()
3.const常成員變數的初始化
在某個物件生存期內是常量。
classtest
}
const常量只能通過初始化列表的方式進行初始化。
4.const修飾物件
該物件不能修改。只能訪問成員變數,不能修改。只能呼叫常成員函式。
關於常成員函式,我們在後面介紹。
如下例所示:
#includeclasstest
void fun1() const
{}};
intmain()
5.const修飾指標
我們看一下下面四種寫法:
1) constint* a = 10
;2) int
const *a = 10
;3) int* const a = 10
;4) const
int* const a = 10;
我們需要知道的是,
const在*左,表示指標指向的內容為常量,這也是我們平時說的常量指標
const在*右,表示指標本身為常量,這也是我們平時說的指標常量
因此,1),2)表示指標a指向的內容不能修改
3)表示指標a本身不能修改
4)表示指標a和a指向的內容都不能修改
6.const修飾成員函式,函式引數,返回值
1)修飾成員函式
void fun1() const;
成員函式名後加上const,即表明該函式為常成員函式。
常成員函式的const隱式修飾this指標,即物件不可修改,
所以,常成員函式只能訪問成員變數,而不能修改。只能呼叫其他常成員函式。
如下例所示:
intg_a;
void
g_fun(){}
class
test
void fun1() const
{}
void fun2() const
private
:
inta;
}
2)修飾函式引數
void fun0(const test*p_test);void fun1(const test& test);
在傳入的引數前,加上const,表明傳入的引數不可修改。
3)修飾函式返回值
consttest fun0();
const test* fun1();
當使用const test* fun1();返回指標時,該返回值只能賦給const修飾的同型別指標。
如下例所示:
classtest
const
test fun1()
const test*fun2()
};int
main()
c const使用詳解
關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,現將本人的一些體會總結如下,期望對大家有所幫助 一 const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 500 const int a b 1 int const a ...
C const使用詳解
一 const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 500 const int a b 1 int const a b 2 int const a b 3 const int const a b 4 如果你能區分出上述四種情況,那麼,恭喜你,你已經...
遊戲開發C const使用詳解
發表日期 2010 11 24 一 const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 500 const int a b 1 int const a b 2 int const a b 3 const int const a b 4 如果你能區分出上...