版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chen1083376511/article/details/78442059
指针常量:指向常量的指针。不可以改变指向某变量的值,可以改变指向某个变量。
const int *p1;
int const *p1;两者等价。
方便理解:
1.从右往左看,*p1是指针,const是常量,指针常量。
2.”指针常量“后面的“常量”固定变量的值不变。
3.改变地址
*****************************************************
常量指针:是指针变量的值一经初始化,初始化是必要的。不可以改变指向某个变量,可以改变已经指向某变量的内容。
int *const p2=&a;//必须初始化,指向一个变量,不能改变
方便理解:
1.从右往左看,p2是个变量,const是常量,*指针,常量指针。
2.”常量指针“后面的“指针”固定指向变量的地址不变
3.改变内容
-------------------------------------------------------------
例子
- #include<iostream>
- using namespace std;
- int main(){
- int a = 100;
- int b = 45;
- int const *p1;
- int *const p2=&a;//必须初始化,指向一个变量,不能改变
- cout << "以下关于指针常量p1的作用:" << endl;
- p1 = &b;
- //p2 = &b;错误,不能指向其他变量
- cout << "b的地址:" << &b << endl;
- cout << "指针常量(int const *p1;)p1指向b的地址:" << p1 << endl << endl;
- //*p1 = 8;错误,不能改变变量的内容,可以有指向任意一个变量
-
- cout << "以下关于常量指针p2的作用:" << endl;
- *p2 = 8;
- cout << "p2指向a的地址的内容:" << *p2<< endl;
- cout << "a的值被常量指针(int *const p2=&a)改变:"<<a << endl;
- return 0;
- }
结果: