一、更新时间
2022.2.12
二、初识指针
1.内存的概念
内存是一种存储器,所有程序都在内存中运行。将内存分为一个个小的内存单元,每个内存单元大小为一个字节,对内存单元进行编号,这些编号就是内存的地址。
问题1(内存如何编号):以32位机器为例,32为32根地址线,对线通电将电信号转为数字信号,数字信号的组合数量为2的32次方,这些就是内存的编号,也就是这个内存单元的地址。
问题2(一个内存单元多大):一个内存单元为一个字节大B。
如上图对于a来说,int型为4个字节,对于其地址如图所示。使用指针取地址a时会拿取起始的第一个字节的地址。打印出来a的地址如下图所示。
2.指针变量
如下图所示定义一个指针变量,用于存储地址的变量为指针变量,对于iint* pa来说,pa为指针变量,而int说明pa执行的对象为int类型。
通过地址找到其内部存储的单元,也就是说可以通过操作地址的方式来间接改变a的值。使用解引用操作符*可以通过pa里面的地址寻找到a,并对a的值进行修改。如下图所示。
在32位编译器中指针变量大小都为4位,在64位编译器中指针变量大小都为8位。指针是用于存放地址的,指针多大取决于地址多大。也就是说32位也就是4个字节大B,64位就是8个字节大B。