cjson基本語法整理
static const char *ep;
函式中使用CONST
(1)const修飾函式引數
a.傳遞過來的引數在函式內不可以改變(無意義,因為Var本身就是形參)
void function(const int Var);
b.引數指標所指內容為常量不可變
void function(const char* Var);
c.引數指標本身為常量不可變(也無意義,因為char* Var也是形參)
void function(char* const Var);
d.引數為引用,為了增加效率同時防止修改。修飾引用引數時:
void function(const Class& Var); //引用引數在函式內不可以改變
void function(const TYPE& Var); //引用引數在函式內為常量不可變
這樣的一個const引用傳遞和最普通的函式按值傳遞的效果是一模一樣的,他禁止對引用
的物件的一切修改,唯一不同的是按值傳遞會先建立一個類物件的副本, 然後傳遞過去,而它直接傳遞地址,所以這種傳遞比按值傳遞更有效.另外只有引用的const傳遞可以傳遞一個臨時物件,因為臨時物件都是const屬性, 且是不可見的,他短時間存在一個區域性域中,所以不能使用指標,只有引用的const傳遞能夠捕捉到這個傢伙.
(2)const 修飾函式返回值
const修飾函式返回值其實用的並不是很多,它的含義和const修飾普通變數以及指標的含義基本相同。
a.
const int fun1() //這個其實無意義,因為引數返回本身就是賦值。
b.
const int * fun2() //呼叫時
const int *pValue = fun2(); //我們可以把fun2()看作成一個變數,即指標內容不可變。
c.
int* const fun3() //呼叫時
int * const pValue = fun2(); //我們可以把fun2()看作成一個變數,即指標本身不可變。