指向常量的指针、指针常量、指向常量的指针常量

指向常量的指针、指针常量、指向常量的指针常量

 

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;

实验结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值