物聯網學習教程—Const用法和體會

千鋒教育官方發表於2019-08-23

Const 用法和體會 主要 是為了程式的健壯型, 減少程式出錯 .
最基本的用法:
const int a=100;        b 的內容不變 ,b 只能是 100 也就是宣告一個 int 型別的常量 (#define b =100)
int const b=100;        // 和上面作用一樣

const 指標和引用一般用在函式的引數中
int* m = &a;   // 出錯 , 常量只能用常指標
int c= 1;const int*pc = &c;// 常指標可指向常量

const int* pa = &a;     // 指標指向的內容為常量 ( 就是 b 的值不變 )
int const *a = &b;     // 指標指向的內容為常量 ( 就是 b 的值不變 )*p=3//error
int* const a = &b;     // 指標為常量 , 不能更改指標瞭如 a++ 但可以改值 *p=3;

從這可以看出const 放在 * 左側修飾的是指標的內容 ,const 放在 * 右側修飾的是指標
本身.

const 引用的用法和指標一樣
int const &  a=b;          和指標一樣
const int& a=b;          和指標一樣
但沒有 int& const a=b 的用法因為引用不能做移位運算,但只是出個 warning

const int* const a = &b;   // 綜合應用 , 一般用來傳遞多維的陣列
類如: char* init[] = {"Paris","in the","Spring"};
void fun(const int* const a){}
fun(init)// 保護引數不被修改

int A(int)const;      // 是常函式,只能用在類中,呼叫它的物件不能改改變成員值
const int A();     // 返回的是常量 , 所以必須這麼呼叫    cosnt int a=A();
int A(const int);  // 引數不能改值 , 可用在任意函式
int A(const int*);
....
int height() const;// 常函式只能由常函式呼叫
int max(int,int) const;
int Max = max(height(),height());

 

const int* pHeap = new int;
delete pHeap;
p = NULL;// 出錯
我的解決辦法是強制型別轉換
const int*   pHeap = new int(1);
delete (int*)pHeap;
pHeap = NULL;

暫時 就遇到這些問題, 不知道大家 還有 那些 補充的嗎

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2654760/,如需轉載,請註明出處,否則將追究法律責任。

相關文章