const是c語言的一種關鍵字,起受保護,防止以外的變動的作用!可以修飾變數,引數,返回值,甚至函式體。const可以提高程式的健壯性,你只管用到你想用的任何地方。
(一)const修飾引數。const只能修飾輸入引數。
1、如果輸入引數是指標型的,用const修飾可以防止指標被意外修改。
2、如果引數採用值傳遞的方式,無需const,因為函式自動產生臨時變數複製該引數。
3、非內部資料型別的引數,需要臨時物件複製引數,而臨時物件的構造,析構,複製較為費時,因此建議採用前加const的引用方式傳遞非內部資料型別。而內部資料型別無需引用傳遞。
(二)const修飾函式返回值。
1、函式返回const指標,表示該指標不能被改動,只能把該指標賦給const修飾的同型別指標變數。
2、函式返回值為值傳遞,函式會把返回值賦給外部臨時變數,用const無意義!不管是內部還是非內部資料型別。
3、函式採用引用方式返回的場合不多,只出現在類的賦值函式中,目的是為了實現鏈式表達。
(三)const+成員函式。任何不修改資料成員的函式都應該宣告為const型別,如果const成員函式修改了資料成員或者呼叫了其他函式修改資料成員,編譯器都將報錯!
class stack
;int stack::getcount(void) const
編譯器輸出錯誤資訊:error c2166: l-value specifies const object。
(四)const 修飾變數,表示該變數不能被修改。
1、const char *p 表示 指向的內容不能改變
2、char * const p,就是將p宣告為常指標,它的位址不能改變,是固定的,但是它的內容可以改變。
3、這種const指標是前兩種的結合,使得指向的內容和位址都不能發生變化.
const double pi = 3.14159;
const double *const pi_ptr = π
函式返回的臨時物件為const型別,const引用
include include using namespace std class a public int m int a getint int test const a pa char test1 const a pa int main string foo 凡是返回值物件都是臨時物件?void...
C語言 const指標使用技巧之 返回指標的函式
引言 在c語言中,有些函式回返回指標,即為返回指標的函式。通常情況下函式的實現方不希望函式的呼叫方修改指標指向的內容。解決方案 在函式返回的時候返回乙個指向 const 變數的指標。示例 如下 cpp include stdafx.h static const int testpointertoco...
返回陣列指標
如果我們想定義乙個返回陣列指標的函式,則陣列的維度必須跟在函式的名字之後,然而函式名字之後的是形參列表,所以形參列表應該在陣列的維度之前。返回陣列指標的函式形式如下所示 type function parameter list dimension 下面這個func函式的宣告沒有使用型別別名 int ...