指向常量的指针、指针常量、指向常量的指针常量
1、指向常量的指针
int a=52;
const int *p=&a;
可以直接通过变量a来修改内存内容,但通过该指针修改内存内容的操作是不被允许的。
2、指针常量
int a=13;
int *const p=&i;
*p=6;
将const放在指针运算符*后,构成指针常量,无法改变它的内存指向,但是可以改变它指向内存的内容。
3、指向常量的指针常量
int a=14;
int const* const p=&a;
既不可以改变指针的内存指向,也不可以通过它修改指向内存的内容。
实例、指针与const
int i=5;
const int c=99;
const int*pr=&i;
int* const pc=&i;
const int* const pcr=&i;
cout<<"三个指针都指向了同一个变量i,同一块内存"<<endl;
cout<<"指向常量的指针pr操作:"<<endl;
cout<<"通过赋值语句改变i:"<<endl;
i=100;
cout<<"i:"<<i<<endl;
cout<<"将pr的地址变成常量c的地址:"<<endl;
pr=&c;
cout<<"*pr"<<*pr<<endl;
cout<<"指针常量pc操作"<<endl;
cout<<"通过pc改变i值"<<endl;
*pc=6;
cout<<"i:"<<i<<endl;
cout<<"指向常量的指针常量pcr操作"<<endl;
cout<<"通过pcr无法改变任何东西,真正做到了只读"<<endl;
实验结果