C++常量指针、指针常量
记忆法:
常量指针表示方法:
-
const double * p = &a; //const读作常量,*读作指针,常量指针
-
double const *p = &a;
指针常量通常表示为:
double * const ptr; //const读作常量,*读作指针,指针常量
指针常量
int* const p = &a;
首先是一个常量,然后是指针类型的,常量必须初始化指向一个地址。
指向的内容可以修改,指向的地址不能修改。
int main()
{
int a = 1;
int b;
int* const p = &a; //指针常量p,初始化指向a的地址
*p = 9;
// p = &b; //编译错误,指针常量指向的地址不能被修改,指向地址的内容可以修改
cout<<"a="<<a; //a的值被修改为 9
return 0;
}
常量指针
const int* p = &a;
int const* p = &a;
首先是一个指针,是指向常量的指针变量。
在定义指针的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量称为常量指针。
指向常量的指针变量,指向的常量值不能修改,但指针指向的地址可以修改。
int main()
{
int a,b;
const int* q = &a;
*q = 9; //操作错误,指向常量的指针变量,常量的值不能修改。
q = &b; //操作成功,指针的地址可以修改
return 0;
}