1 / 23
文档名称:

第五章第一讲 指针变量及指针运算符.ppt

格式:ppt   大小:247KB   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第五章第一讲 指针变量及指针运算符.ppt

上传人:文库旗舰店 2018/7/5 文件大小:247 KB

下载得到文件列表

第五章第一讲 指针变量及指针运算符.ppt

相关文档

文档介绍

文档介绍:第五章指针 ,操作系统给每个单元一个编号,这个编号称为内存单元的地址,每个存储单元占内存一个字节。定义变量时,系统就按照其类型为变量分配一块连续的存储单元。则这块存储单元的首地址称为该变量的指针(也称该变量的地址)。如:floatf;假设分配给f的是地址为1500、1501、1502、1503的四个连续字节。则称地址1500是变量f的指针(或说变量f的地址是1500)。所以,变量的地址就是变量的指针。第五章指针 之第一节指针与指针变量先来看卡片管理系统假设有许多存储不同数据的卡片,如图。想对这些数据快速存取,一个好方法就是对每张卡片编号,再为每张卡片取个名字,让名字和编号一一对应起来。这样就能通过名字存取卡片上的数据,比如指出卡片名f,。123您好!……1500…卡片上数据卡片编号1500015002卡片名字abchipf......注意:p是一种特殊的卡片,它存储的是卡片f的编号,则通过p也能间接地存取卡片f的数据。 之第一节指针与指针变量变量值的存取与卡片数据存取相类似。每个变量都有名字和地址。同样是使用变量名通过相应地址存取数据。,。假设变量f为float型。。这种称为“直接存取”方式。特殊变量p存储了变量f的地址。则可以通过访问p变量,可以得到地址1500,再访问1500的存储单元,。这种称为“间接存取“方式。变量的值地址编号1000500015001002变量名abchipf......123您好!……1500… 之第一节指针与指针变量象p变量这种,专门存放其他变量的地址的变量,称为指针变量。,指针变量p里已经存储了f变量的地址,我们又说指针变量p指向了变量f。2。指针变量的定义定义的一般形式:类型名*标识符;如:inti,*ip,*jp;/*定义了ip和jp两个可以指向整型变量的指针变量*/floatf,*p;/*定义了一个可以指向float型变量的指针变量p*/注意:,在没有对它赋值前,它指向的存储单元是不确定的。 ).通过地址运算符&赋值“&”是单目运算符,作用是对其右边的对象进行取地址。如:floatf,*p;p=&f;/*这样指针变量p就指向变量f了*/2).指针变量初始化。如:floatf,*p=&f;变量p指向ff3d变量fff3df的值第五章指针 之第一节指针与指针变量3).通过其他指针变量赋值可以把一个指针变量的地址值赋给另一个指针变量,这样两个指针变量均指向同一个地址。如:inti,*p1=&i,*p2;p2=p1;指向2f3a变量p1变量i变量p2注意,当把一个指针变量的地址值赋给另一个指针变量时,赋值号两边指针变量所指的数据类型必须相同。2f3ai的值2f3a第五章指针 之第一节指针与指针变量如:inti,*pi=&i;float*pf;pf=pi;/*这句是非法的*/4).用NULL给指针变量赋空值可以给指针变量赋空值,如:p=NULL;,因此在使用NULL时,应该在程序中加上文件包含#include“”。在C语言中当指针值为NULL时,指针不指向任何有效数据。由于NULL与整数0相对应,所以下面三条语句等价:p=NULL;或p=0;或p='\0';NULL可以赋值给指向任何类型的指针变量。第五章指针 之第一节指针与指针变量5).通过调用标准库函数赋值可以调用库函数malloc和calloc在内存中开辟动态存储单元,并把所开辟的动态存储单元的首地址赋给指针变量。由于这两个函数返回的是“void*”无类型指针类型,因此将它们的返回值赋值给指针变量时要进行强制类型转换。(1)malloc函数调用该函数,在内存的动态存储区中分配一个指定长度(以字节为单位)的连续存储空间,如果调用该函数成功,则返回所分配空间的首地址,如果分配不成功测返回NULL。调用形式为:malloc(表达式)如:int*p;p=(int*)malloc(sizeof(10*int));分配成功,p就能得到20个字节空间的首地址第五章指针 之第一节指针与指针变量(2)calloc函数调用该函数,:calloc(n,size)如:int*p;p=(int*)callo