指针漫谈(四):再论指针初始化的问题

       先来看下指针初始化的一个例子:

int a=10;
int *p;//申明
p=&a;//初始化,将a是地址赋给指针变量
        一句句分析,首先,我们来看第一句,不多过多解释,相信大家可以理解,就是变量a的声明和初始化,从第二句话开始就是我们叙述的重点。为了大家对我叙述的内容更清楚,请参考上一篇博文指针漫谈(三),指针变量是p而不是*p,那为什么写成*p呢?就是一种标示而已,标志是一种指针变量,方便编译器处理。那我们来分析,第三句话的意思是使用地址运算符&取到a变量的地址,赋值给指针变量p,大家搞清楚,指针变量同样也有它的存储空间,它的存储空间的地址给定是在初始化的时候编译器随机分配的。因此,可以这样讲:p的值是a的地址,p的地址编译器给的。又可以理解为是p指向了a,那接下来是取值的过程了,在解引用的时候使用*p的表达式就是为了将p中值(a地址)等价于门牌号,找到对应的值就完成了指针整个过程。

       上面的解释应该很清楚了,对初始化的理解基本完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值