C const使用詳解

2022-08-03 17:57:09 字數 1400 閱讀 4438

一 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]

如果你能區分出上述四種情況,那麼,恭喜你,你已經邁出了可喜的一步。不知道,也沒關係,我們可以參考《effective c++》item21上的做法,

如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;

如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量。

因此,[1]和[2]的情況相同,都是指標所指向的內容為常量(const放在變數宣告符的位置無關),這種情況下不允許對內容進行更改操作,如不能*a = 3 ;

[3]為指標本身是常量,而指標所指向的內容不是常量,這種情況下不能對指標本身進行更改操作,如a++是錯誤的;

[4]為指標本身和指向的內容均為常量。

二 作為引數

void display(const double& r);或者void display(const double* r);

說明:1 在引用或者指標引數的時候使用const限制是有意義的,而對於值傳遞的引數使用const則沒有意義

2 保證引用的變數的值不被改變

3 const在double前或者後面意思相同,只是不同的人的寫法不同

三 const物件

宣告為const的物件只能訪問類中宣告為const的成員函式,不能呼叫其它成員函式.

四 const成員函式

型別說明符   函式名(參數列)const;             void print(int i) const;

說明:1 const是函式型別的乙個組成部分,因此在實現部分也要帶const關鍵字.

2 常成員函式不能更新物件的資料成員,也不能呼叫該類中沒有用const修飾的成員函式.

五 使用const的一些建議

1 要大膽的使用const,這將給你帶來無盡的益處,但前提是你必須搞清楚原委;

2 要避免最一般的賦值操作錯誤,如將const變數賦值,具體可見思考題;

3 在引數中使用const應該使用引用或指標,而不是一般的物件例項,原因同上;

4 const在成員函式中的三種用法(引數、返回值、函式)要很好的使用;

5 不要輕易的將函式的返回值型別定為const;

6除了過載操作符外一般不要將返回值型別定為對某個物件的const引用;

c const使用詳解

關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,現將本人的一些體會總結如下,期望對大家有所幫助 一 const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況 int b 500 const int a b 1 int const a ...

C const使用詳解

1.const常量和巨集常量 const int max 100 define max 100 const常量相對巨集常量有兩個有點 1 有型別安全檢查 2 占用記憶體空間少 2.const變數在記憶體中的位置 我們在c程式的記憶體布局中,已經通過示例進行了說明 include const int ...

遊戲開發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 如果你能區分出上...