首先引入话题
我们口语讲到指针,比如p指针,其实想要表达的意思就是p是一个指针变量
取地址操作符&a取出a的地址,看上图代码
给大家画个图让大家初步认识一下学习指针需要用到的基本理论
32位机器上我们有32根物理电线,32根地址线通电后产生的电信号转化为数字信号,随机产生0 1组成的这样的二进制随机序列,一共有2的32次方个全0到全1的二进制序列
2的32次方个字节,每个地址标识一个字节,那我们就可以给2^32Byte == 2^32/1024KB == 2^32/1024/1024MB==2^32/1024/1024/1024GB == 4GB,在32位机器上最多能寻址(或者管理)4GB的空间,至于64位机器,大家参照32位机器的计算方式可以自己计算一下
在64位机器上,64个比特位就能存放64个01组成二进制数
指针变量是用来存放地址的,地址是唯一标示一个内存单元的
指针的大小在32位平台是4个字节,在64位平台是8个字节
下面指针类型的讲解,大家先别慌,先跟我的思路走,看下图
在X86环境下,打印的指针大小都是4个字节
在X64环境下,打印的指针大小都是8个字节
我们按住F10调试起来看到a在内存中的存储是倒着存放的,为什么呢,大家可以先不管,如果感兴趣,可以去我的数据在内存中的存储那两篇博客中去看一下,不懂的可以在评论区提问