指针常量和常量指针

指针常量和常量指针
大家先不要纠结你写的代码中包含的是指针常量,还是常量指针。先理解自己的代码。

先看看这几种声明方式:

  1. int *pi1;  
  2. int* pi2;  
int *pi1;
int* pi2;


这两种声明方式的结果都是一样的,pi1和pi2都是整型指针,所谓整型指针,就是指向整数数组首地址的指针变量。其实int*和int *描述的都是某个变量,标示某个变量的属性。


继续往下看

  1. int const *pid1;   
int const *pid1; 
  1. const int *pid2;  
const int *pid2;

这两个声明,其实结果一样,首先pid1和pid2都是指针, (*pid1)和(*pid2)都具有int属性,所以两个指针都是整型指针,有因为加了const属性,所以(*pid1)这个整数不可以被修改。

这个就是常量指针。


在看看下面的声明

  1. int * const pid;  
int * const pid;

首先pid是个指针,然后修饰pid的修饰符是const,所以pid的内容不可以修改,也就是说他只能被存放一次,而且是在声明的时候初始化。

这个就是指针常量。


总结一下:

指针常量就是本身是常量的指针。

常量指针就是指向常量的指针。

其实明白了上面的解释,大家就不必在意什么常量指针,指针常量了。用对就可以了。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值