C语言辅导班第8章

C语言辅导班第8章

ID:46154825

大小:172.00 KB

页数:25页

时间:2019-11-21

C语言辅导班第8章_第1页
C语言辅导班第8章_第2页
C语言辅导班第8章_第3页
C语言辅导班第8章_第4页
C语言辅导班第8章_第5页
资源描述:

《C语言辅导班第8章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章指针指针是C语言中一种重要的数据类型,是C语言的精华和特色之一,灵活的运用指针可以处理各种复杂的数据结构。它可以使程序简洁、紧凑、高效,学习和使用C语言,就要深入和掌握指针。8.1变量的地址在介绍变量的地址之前,我们先打个很重要的比方。例如有一栋楼房,房子建好后对楼房的每个房间进行基本编号,一楼的房间依次编号为101、102、103、……二楼的房间依次编号201、202、203、……,如此类推。假如某家公司租用了这个楼房的三楼作为办公场所,其中301和302是紧挨着的两间房,被分配给这家公司财务科,并且我们在301门上挂了

2、一个牌子写着财务科。305和306也是紧挨着的两间房,被分配给人力资源部,在305门上挂了一个牌子写着人力资源部。我们以后到这家公司来办事,涉及到财务方面的问题我们只是说找财务科,而不是说找301和302,尽管财务科实际上就是找301和302。一是由于我们对这家公司不熟悉,可能不知道财务科是哪个房间二是可以减少我们的工作量,我们可以把找财务科的任务交给熟悉本公司情况的公司内部人员。三是由于记忆的方便,财务方面的问题找财务科是很好记忆的,如果告诉你财务方面的问题找301和302可能过久了就不记得了。内存地址的基本概念计算机的内存是

3、以字节为单位的一片连续的存储空间,每一个字节都有一个编号,这个编号就是内存地址。就像旅馆的每个房间都有一个房间号一样,如果没有房间号,旅馆的工作人员就无法进行管理。同样的道理,没有内存编号,系统就无法对内存进行管理。因为内存的存储空间是连续的,内存中的地址号也是连续的,并且用二进制来表示,为了直观起见,在这里我们将用十进制数进行描述。如果在程序中定义了一个变量,C语言编译系统就会根据变量的类型为这个变量分配一定字节数的内存空间。例如:int型占4个字节,char型占一个字节,float型占4个字节等等。intcharfloat1

4、004100310021001直接存储方式直接按变量地址存取变量值的方式。如:inta=5就是直接为变量a进行开辟存储单元,把5放到存储单元里。间接存储方式在一个存储单元里放的是变量的地址,由这个地址出发,找到存储单元的位置,取出数据。如指针。8.2指针变量指针变量的定义我们平时经常所说的“指针”就是指针变量的简称。比如指针变量p被称为指针p。经常用一个并不存在的符号“->”,来表示指向关系。10119527p10111012a定义变量的一般形式类型名*指针变量1,*指针变量2,……;例如:inta,*pi,*pj,c;以上定义

5、语句中,pi和pj都是用户标识符,在每个变量前的星号*是一个说明符,用来说明该变量时指针变量。注意:变量前的星号不可省略,若省略了星号,就变成了把pi和pj定义为整型变量。int是类型名,在这里,说明了pi和pj是两个指向整型(int类型)变量的指针,也就是说变量pi和pj中只能存放int类型变量的地址,这时我们称int是指针变量pi和pj的基类型。如:double*pd;char*s1,*s2;在这里定义了三个指针变量pd、s1、s2,其中pd的基类型为double类型,在指针变量pd中,只能存放double类型变量的地址;s

6、1和s2的基类型为char类型,在s1和s2中只能存放char类型变量的地址。以下定义的p为一个指向指针的指针变量int**p,*s,k=20;s=&k;p=&s;在这里,指针变量p的基类型是基类型为int类型的指针类型。以上赋值语句中“&”是求地址运算符,s=&k用来求出整型变量k的地址赋给指针变量s,而使s指向k;p=&s用来求出指针变量s的地址赋给指针变量p,它使p指向s。95214567p2012s952120122013k为什么指针变量要有基类型呢?一个指针变量中存放的是一个存储单元的地址值。这里“一个存储单元”中的“

7、一”所代表的字节数是不同的:对shortint类型整型而言,它代表2个字节;对int类型或float类型而言,它代表了4个字节,这就是基类型的不同含义。二.指针变量赋地址值(1)通过求地址值运算符“&”给指针变量赋值。(&是单目运算符)如inta=10,*p,*q;p=&a;(2)通过其他指针变量获得地址。基类型相同的指针变量之间可以相互赋值,从而使两个指针变量指向同一地址。如上面:q=p;也就是指针p和指针q同指向一个变量a。注意:当进行赋值运算时,赋值号两边指针变量的基类型必须相同。三.给指针变量赋“空”值除了给指针变量赋地

8、址值外,还可以给指针变量赋NULL值。例如:p=NULL;NULL是在stdio.h头文件中定义的预定义标识符,因此在使用NULL,应该在程序的前面出现预定义行:#include“stdio.h”。NULL的代码值为0,当执行了以上的赋值语句后,指针p为空指针。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。