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变量。