一、什么是指针?
关于指针我们首先要了解什么是内存
![](https://i-blog.csdnimg.cn/blog_migrate/5a147f657e895d00f4a22b25b11fe87b.png)
内存就是电脑上特别重要的存储器
关于内存,我们要了解两个问题
内存是如何编号的?
一个这样的内存大小是什么?
![](https://i-blog.csdnimg.cn/blog_migrate/045c67d65230abd611dac8bc2b6f86f3.png)
内存有32字节和64字节等,例如32位字节
它会将电信号转换成数字信息,即用1/0表示的二进制位
从32个0到32个1一共有2的32次方个内存单元
那么内存的大小是多少呢?以2的32次方为例
![](https://i-blog.csdnimg.cn/blog_migrate/dd8351b32b415b034db83b0e29ab174e.png)
如图所示,1 bit=8 byte,其余的kb,mb,gb都是以1024为进制
二、指针=取地址
指针就相当于地址
![](https://i-blog.csdnimg.cn/blog_migrate/837b17c7e7ea6780f34ece6594e90075.png)
&为取地址符号,上图代码a的地址就为0X000000F69398F9E4
int类型在内存中占4个字节,及0a 00 00 00,地址分别为E4 E5 E6 E7
指针变量
![](https://i-blog.csdnimg.cn/blog_migrate/6fc56ea5c27497944d32cd9c64d7acfc.png)
分析代码:
创建变量a,变量类型为int,在内存中占4个字节
打印a的地址,%p是专门用来打印地址的
pa是专门用来存放地址的,也被称为指针变量
*说明pa是指针变量
int * pa=&a,就是把a的地址存放在类型为int,名称为pa的指针变量里
解引用操作
当我们把一个变量的地址存在指针变量里,想要在拿出来应用或者改变变量时,就要使用解引用操作
![](https://i-blog.csdnimg.cn/blog_migrate/689f80875a7252401024deb41c8bde6b.png)
在指针变量pa前加*则为解引用操作,*为解引用操作符
*pa就是从pa里面的地址找到a,从而对a进行操作
以上代码:*pa=20,打印a结果为20
三、指针的大小
想要知道指针的大小就要借助关键字sizeof
![](https://i-blog.csdnimg.cn/blog_migrate/70ff9504c6c9a476014e24406383eaff.png)
分析代码:
不论是那种指针类型,结果指针大小都为4,即在内存中占用4个字节
因为本次执行时,编译器为32比特位,即1byte=8bit
如果改成64比特位,结果就为8个字节
总结
以上就是本人对于初识指针的学习与理解