目前已经大体认识了下C语言,想着把自己对指针部分的理解记录下来,理解肯定不会特别全面但随着学习的深入会陆续完善和修改
可以把内存想象成下面的表格
首先,内存的空间是以字节为单位划分的
int a=10;也就是向内存申请4个字节空间
可以把内存想象成宿舍楼 宿舍楼内有很多房间每个房间都有自己的编号,我们可以根据编号找到对应宿舍 把编号放入一个容器中,这个容器就相当于指针
再加个地址概念 以32位平台为例 32位也就是32根地址线/数据线也就是电线 产生电信号 正电和负电 正电用1表示 负电用0表示 由1和0形成32位的二进制序列地址 个地址序列
指针是变量 这个变量是用来存放地址的
int a = 10;//向内存申请4个字节的空间 int* p = &a;//定义一个指针变量 把a的地址赋给指针p
指针的名字为p 类型为int* *为解引用操作符或者是间接访问操作符
*p=20;//通过指针p中存的a的地址值找到a将a的值改为20
上段代码可以看出p中存放的值和a的地址是一致的
还有一个概念 在32位平台中指针大小为4个字节 64位平台为8个字节



