物聯網學習教程—const用法的體會

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

看到很多的朋友都有聊過 const 用法的體會,下面挺好小編就給大家做一個具體的介紹吧!我覺得寫的挺不錯的,分享給大家!

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-2654645/,如需轉載,請註明出處,否則將追究法律責任。

相關文章