[C++之旅] 5 const的使用
const與基本數(shù)據(jù)類型
int a = 10;
const int b = 15;
其中a為int類型的變量筝闹,b為常量吧创坞,不可修改
const與指針類型
1.
const int *p = NULL;
int const *p = NULL可款;
上兩種表示方法完全等價
int a = 15;
const int *p = &a;
若使用*p = 20雪情;則是錯誤的剧蚣;若使用p = &q趁窃;(int q = 213崇渗;)則是正確的字逗;const限定的是 *p而不是p。
2.
int a = 12;
int *const p = &a;
若使用 p = &q;是錯誤的宅广,*p = 15;是正確的葫掉,即const限定了p所指向的地址,而不限定p所指向地址的內(nèi)容跟狱。
3.
const int *const p = NULL;
int const *const p = NULL;
若使用 p = &q;是錯誤的俭厚,*p = 15;也是錯誤的,即const限定了p所指向的地址驶臊,也限定了p所指向地址的內(nèi)容挪挤。
const 與引用
int a = 45;
const int &b = a;
若使用a = 10;是正確的资铡,使用b = 15电禀;是錯誤的,即const限定了b笤休,b不能改b的值尖飞,但a可以修改。