const修飾的pointer用法
1.初見
(1) 指向const對象的指針
①指向const對象的指針必須是const指針。如:
const int pi=10;//或者int const pi=10;
const int *p=π
②非const指針不能指向const變量。如:
const double pi=3.14;
double *ptr=π //error:ptris a plain pointer
(2) const指針
const指針可以指向非const變量。如:
int pi=10;
cons tint *p=π
(3) 指向const對象的const指針
const double pi=3.1415926;
const double *const ptr=π //或者double const*const ptr=π
2.const pointer作爲函數參數
void reset(int *P)
{
p=0;
*p=0;
cout<<*p<<endl;
}
Void user_ptr(const int *P)
{
cout<<*p<<endl;
}
例如,const inta=10;const int *Ptr=&a;
因而,reset只能傳遞非const指針,因爲int*p=const int *ptr;無法轉換。而user_ptr可以傳入const或非const指針,因爲const指針可以指向const變量和非const變量。