指针常量和常量指针

版权声明:本文为博主原创文章,未经博主允许不得转载。 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.改变内容
-------------------------------------------------------------
例子
  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int a = 100;
  5. int b = 45;
  6. int const *p1;
  7. int *const p2=&a;//必须初始化,指向一个变量,不能改变
  8. cout << "以下关于指针常量p1的作用:" << endl;
  9. p1 = &b;
  10. //p2 = &b;错误,不能指向其他变量
  11. cout << "b的地址:" << &b << endl;
  12. cout << "指针常量(int const *p1;)p1指向b的地址:" << p1 << endl << endl;
  13. //*p1 = 8;错误,不能改变变量的内容,可以有指向任意一个变量
  14. cout << "以下关于常量指针p2的作用:" << endl;
  15. *p2 = 8;
  16. cout << "p2指向a的地址的内容:" << *p2<< endl;
  17. cout << "a的值被常量指针(int *const p2=&a)改变:"<<a << endl;
  18. return 0;
  19. }
结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值