C++ const總結

C++ const總結spa

const int a = 5; 指針

對象a是個int型的const對象對象

int const b = 5; it

跟上面相同,對象b也是個int型的const對象dva

 

const double *cptr; 原理

cptris a pointer to a double that is constobject

cptr指向的對象是double類型的const對象float

 

例如:error

const double pi = 3.14;總結

const double *cptr = π

 

const int universe = 42;

const int *cpv = &universe;  //ok: cpv is const

Int *cpv = &universe; //error, universeis const and don’t fit common pointer

普通指針不能指向const對象。

 

double dval = 3.14;

const double *cptr;

cptr = &dval; //ok: but can’t changedval through cptr

const指針對象能夠指向普通的對象,可是不能使用指針修改該普通對象。

原理:const類型的cptr指針不可能知道它所指向的對象是const對象仍是普通對象,因此它對它所指向的全部對象都當成是const對象。Const指針能夠被認爲是「它們認爲它們本身指向const對象的指針」

 

const float *p; //Pointer to const object

指向const對象的指針

 

int errNumb = 0;

int *const curErr = &errNumb; //curErris a constant pointer

*curErr=12;

const指針,從右往左念:curErr is a constant pointer to an object of type int.

任何給const指針從新指向新對象的作法都是錯誤的。不過,能夠經過const指針修改對象的值。

 

總結:

const int *a; 或者 int const*b;  指向const對象的指針

int *const c;    const指針

星號在const右邊時,爲指向const對象的指針- pointer to const

星號在const左邊時,爲const指針- const pointer

相關文章
相關標籤/搜索