本文介紹C++中的關鍵字const
const用來控制C++中的變量是否可以變化
- const與基本數據類型
- const與指針類型
- const與引用
int a=2;//變量
//變量名: a
//存儲地址:&a
//存儲內容:2
加上const之後,變量就變成了常量
const int a=2;//常量
//變量名:a
//存儲地址:&a
//存儲內容:2
2.const與指針類型
數據類型前面加const和後面加const完全等價
const int *p=NULL;//const寫在數據類型前面 這兩種寫法完全等價
int const *p=NULL;//const寫在數據類型後面
* 後面加constint *const p=NULL;
數據類型前面* 後面,和數據類型後面*後面完全等價
const int *const p=NULL; 這兩種完全等價
int const *const p=NULL;
int a=3,b=4;
const int *p=&a;
p=&b;//允許執行
*p=5;//不允許執行,const修飾*p,*p的值不能被修改
變量名 存儲地址 存儲內容
a &a 3
p
&p &a
Example:
int a=2,b=3;
int *const p=&a;
p=&b;//不允許,const在*的後面,意味着修飾p,p只能指向一個地址,不能被修改,用p再指向其他的地址時會報錯。
變量名 存儲地址 存儲內容
a &a 2
p &p &a(被修飾,不能被修改)
Example:
int a=4,b=5;
const int *const p=&a;
p=&b;//不允許
*p=6;//不允許,前後都加了const時,p,*p都不能被修改
變量名 存儲地址 存儲內容
a &a 4(被修飾,不能被修改)
p &p &a(被修飾,不能被修改)
3.const與引用Example:
int a=3;
const int &b=a;
x=4;//允許
b=5;//不允許,b作爲a的別名,前面嫁了修飾符const,b不能被修改