C语言程序设计(第6章指针)
6.1指针和指针变量
过去我们在编程中定义或解释变量时,编译器系统会为定义的变量分配相应的内存单元,即每个变量在内存中都会有一个固定的位置和特定的地址。由于变量的数据类型不同,其占用的内存单元数量也不同。如果我们在程序中定义:
int a=1,b = 2;
float x=3.4,y = 4。5 ;
双m = 3.124
char ch1='a ',ch2 = ' b
我们先来看看编译系统是如何为变量分配内存的。变量A和B是整型变量,每个变量占用内存2个字节;x和y是实型,各占4个字节;m是双精度实数类型,占8个字节;Ch1、ch2是字符类型,各占1个字节。由于计算机存储器是按字节寻址的,变量的存储从存储单元2000开始。
变量根据不同的数据类型占用不同大小的内存,都有特定的内存单元地址。比如变量A在内存中的地址是200 0,占用两个字节后,变量B的内存地址是2002,变量M的内存地址是2012。过去,
scanf("%d%d%f ",&a,&b,&x)用来表示数据输入变量的地址所表示的内存单元。那么,要访问一个变量,首先要找到它在内存中的地址,或者一个地址指向一个内存变量,我们称之为变量的指针。如果变量的地址存储在内存的特定区域,并且用变量来存储这些地址,那么这样的变量就是指针变量,通过指针对被指向变量的访问也是对变量的间接访问。
设置一组指针变量pa,pb,px,py,pm,pch1,pch2,分别指向上述变量A,B,X,Y,M,ch1,ch2,指针变量也存储在内存中。它们之间的关系如图6-2所示:在图6-2中,左边部分显示的内存存储指针变量的值。比如指针变量pa的值是2000,这是变量A在内存中的地址。因此,p a指向变量a..变量的地址就是指针,存储指针的变量就是指针变量。
0条评论