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

来源:互联网 发布:centos版本查看命令 编辑:程序博客网 时间:2024/05/22 04:54

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

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

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

0 0