5.1.1 指针的概念
为了了解指针的概念,先来看一个小故事。
话说福尔摩斯派华生到威尔爵士居住的城堡去取回一个重要的数据。白天,在书房里,威尔爵士当着福尔摩斯和华生的面亲自将数据锁入了书柜中编号为3010的抽屉。夜里,华生悄悄地潜入了威尔爵士的书房。他轻手轻脚地打开了编号为3010的抽屉,用电筒一照,只见里面只有一张纸条,上面赫然6个大字:地址2000。华生眼睛一亮,迅速找到编号为2000的抽屉,取出重要数据123,完成了任务。
可用图5.1.1来描述这几个数据之间的关系。
说明:
图5.11
(1)数据藏在一个内存地址单元中,地址是2000。
(2)地址2000又由Pointer单元所指认,Pointer单元的地址为3010。
(3)123的直接地址是2000,123的间接地址是3010,3010中存的是直接地址2000。
(4)称Pointer单元为指针变量,2000是指针变量的值,实际上是有用数据在存储器中的地址。
由此可见,指针变量是一种特殊的变量,它存放的不是数据,而是另一个变量的地址。这个存放数据的变量通常被称为指针变量所指向的目标变量。由于通过指针变量中的地址可以直接访问它指向的目标变量,常把指针变量简称为指针。
指针变量是一种存放地址的特殊变量,其特殊性表现在类型和值上。从变量的角度讲,指针变量也具有变量的要素:
(1)指针变量的命名,与一般变量命名相同,只要遵循C语言的命名规则即可。
(2)指针变量的类型,是指针变量所指向的变量的类型,而不是自身的类型。
(3)在现有的32位微机系统中,指针变量在内存中占4个字节。
一般地,若v是某种数据类型的变量,p为指向变量v的指针;那么,p和v的关系如图5.1.2所示。
图5.1.2 指针及其目标变量的关系
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。