指针的概念
1)变量在内存中的存放
在编程中定义或说明变量时,编译系统就为已定义的变量分配相应的内存单元,也就是说,每个变量在内存中会有固定的位置,有具体的地址。由于变量的数据类型不同,它所占的内存单元数也不相同。若在程序中定义:
charc1=′a′,c2=′b′;
inta=1,b=2;
floatx=3.4,y=4.5;
其中,c1、c2是字符型,各占1个字节;变量a、b是整型变量,在内存中各占2个字节;x、y是实型,各占4个字节。由于计算机内存是按字节编址的,设变量从内存单元开始存放,则编译系统对变量在内存的安放情况如表所示。
不同数据类型的变量在内存中占用的空间
2)直接访问
对内存中变量的访问,在程序中是通过变量名来引用变量的值。
实际上,系统在编译时将每一个变量名对应一个地址,在内存中不再出现变量名而只有地址。程序中若引用变量a;系统将找到其对应的地址,然后从和这两个字节中取出其中的值。前面已学习过cin,例如cin》a,执行cin时将键盘输入的一个整数送到&a(即地址)所标志的存储单元中。而在逻辑上所用的变量在内存中是不存在的,代之以存在的是地址。
这就是说,要访问变量,必须通过地址找到该变量的存储单元。由于通过地址可以找到变量的存储单元,因此可以说一个地址“指向”一个变量存储单元,比如在表6.1中,地址指向变量c1,指向变量a,指向变量b……这种通过变量名或地址访问一个变量的方式称为“直接访问”方式。
3)间接访问
为了处理一些复杂的数据结构问题,系统还提供了一种“间接访问”方式,就是把一个变量的地址放在另一个变量中,如表6.2所示。
表6.2 指针变量与变量在内存中的关系
4)指针
在内存的另一些单元中设置另一些变量:pc1、pc2、pa、pb、px、py,分别用来存放这些变量c1、c2、a、b、x、y的地址。如果想得到a的值,可以先访问变量pa,得到(它是变量a的地址),再通过地址找到它所指向的存储单元中的值(数值1)。如表6.2中的箭头指向。这种把地址存放在一个变量中,然后通过先找出地址变量中的值(一个地址),再由此地址找到最终要访问的变量的方法,称为“间接访问”。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架存放地址的变量是一种特殊的变量,这种变量称之为指针变量,简称指针。指针是存放另一变量地址的变量。由此可见,指针是一个变量,与其他变量一样,它占有一定的存储空间,所不同的是它只能用来存放地址。
好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个