常量指针
常量指针:指针指向的值不能修改,但是指针的指向可以修改
常量指针定义方式为:const int *p=&a;
#include<iostream> using namespace std; int main() { int a=100; int b=200; //常量指针,指针的指向可以更改,但是指针指向的值不能改 const int *p=&a; //*p=10;编译时会报错 p=&b; cout<<*p<<endl; return 0; }
运行结果:200
记忆方式:const 在 *p(*p代表的是一个数) 之前,所以这个数不能通过这指针修改,俗称常量指针
指针常量
指针常量:指针的指向不能修改,但是指针指向的值可以修改
定义方式:int * const p=&a;
#include<iostream> using namespace std; int main() { int a=100; int b=200; //指针常量,指针的指向不可以改,指针指向的的值可以改 int * const p=&a; //p=&b; 编译时会报错 *p=10; cout<<*p<<endl; return 0; }
运行结果:10
记忆方式:const在 p (p代表的是一个地址) 之前,所以这个地址不能修改,所称指针常量
常量指针常量
常量指针常量:指针的指向和指针的指向的值都不能修改
定义方式: const int * const p=&a;
#include<iostream> using namespace std; int main() { int a=100; int b=200; //常量指针常量,指针的指向不可以改,指针指向的的值也不可以改 const int * const p=&a; //p=&b; 编译时会报错 //*p=10; 编译时会报错 cout<<*p<<endl; return 0; }
运行结果:100
记忆方式:在 * 和 p 之前都有const 修饰,所以二者都不可以改