#include <iostream> int main() { using namespace std; cout << "Hello World!\n"; const int Months = 12;//==int const int const M2 = 12; //M2 = 10; error //Monnths = 13; error // const int Days; error // int* Mon = &Months; error const int* Mon = &Months; //ok; ==int cont * int m = 13; const int* Mn2 = &m; cout << "const int* Mn2 = &m " << *Mn2 << endl; Mon = &m;//ok //*Mon = 20;//error cout <<"Mon = &m,Mon="<< *Mon << endl;//13 ok const int* const CMon = &Months;//==int const *const int const* const c2 = &Months; // c2 = &m; error // *c2=10; error // CMon = &m; //error //*CMon = 10;//error int* const cMon1 = &m; cout << "cMon1:" << *cMon1 << " m=" << m << endl;//13,13 int m2 = 14; //cMon = &m2;//error; //cMon1 = &m2;//error *cMon1 =14; cout << "cMon1:" << *cMon1 << " m=" <<m<< endl;//14,14 }
【c++】const 限定符
常規變量的const
const int a=10;
等價於:int const a=10;
指針變量的const
const int* Mon = &Months
可以指向常量和一般變量
被指向的變量的值不能被更改,比如 :*Mon = 20;//error 是錯誤的,
但是這個Mon可以改變指向的地址,比如 Mon=&m
爲了限制指針的指向對象不被修改,於是有了:
int* const cMon1 = &m
//cMon1 = &m2;//error cMon1指向的對象地址就不能被修改
但是 *cMon1=14 又是可以的
爲了限制這種情況就有了:
const int* const CMon= &Months;
這樣 指向的地址,和解引用的值都不能被修改了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.