C语言程序设计ppt-第9章

C语言程序设计ppt-第9章

ID:44251589

大小:649.00 KB

页数:105页

时间:2019-10-20

C语言程序设计ppt-第9章_第1页
C语言程序设计ppt-第9章_第2页
C语言程序设计ppt-第9章_第3页
C语言程序设计ppt-第9章_第4页
C语言程序设计ppt-第9章_第5页
资源描述:

《C语言程序设计ppt-第9章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计TheCProgrammingLanguage华中科技大学计算机学院 曹计昌9/6/20211华中科技大学计算机学院9.1指针的概念与指针的使用9.1.1指针的概念数据(变量、常量)(根据类型)占有一定数目的连续存储单元;数据的连续存储单元首地址称为数据的地址。变量的地址称为指针,存放地址数据的变量称为指针变量。指针也是一种变量,也要占用一定的内存单元。指针的特殊之处在于它存放的是另一个变量所占存储单元的起始地址。9/6/20212华中科技大学计算机学院指针变量的类型由其基类型决定.基类型是指针变量所指(即所指向)变量的数据类型。因此,称指向某种类型变量的指

2、针为该类型的指针。如:指向整型变量的指针称为整型指针,指向字符型变量的指针称为字符指针等。不管是何种类型的指针,所占的存储与机器字长相当.如:16位机,指针占2字节,…思考:为什么指针指针有类型?指针变量的类型9/6/20213华中科技大学计算机学院ptr指向x如果整型变量x的地址是0xFEC0,x的值是0xABCD,整型指针ptr的地址是0xFEBC,整型指针ptr指向整型变量x的内存存储和指向情况可以由下图描述:0xFEBC,ptr之址C00xFEBDFE0xFEC0,x的低字节CD0xFEC1AB0xFEC20xFEC30xFEC49/6/20214华中科技大学计算

3、机学院9.1.2指针的声明声明指针的一般形式:T*标识符1,*标识符2,…,*标识符n;其中,T是数据类型。*是指针说明符,用于将其说明的标识符说明为指针类型。标识符1,标识符2,…,标识符n是T类型的指针的名字.例9.1:char*pc1,*pc2;int*pi;float*pf;9/6/20215华中科技大学计算机学院指针变量也可以在声明的时候对其进行初始化,但必须用所指变量的地址进行初始化。初始化后的指针将指向以初值为地址的变量。例9.2声明指针并初始化。intx=10,*p=&x;错误的声明:int*p=&x,x=10;9/6/20216华中科技大学计算机学院例9

4、.3给出以下一些复杂声明,解释其含义。int(*p1)[3];double*p2[5];char(*fp)(int,int);int*pf(floata);int(*fp_ary[2])(char*,int*);9/6/20217华中科技大学计算机学院9.1.3指针的使用在声明指针变量的前提下,指针的使用首先要获取变量的地址作为指针值,然后要将该指针值赋给指针变量,建立指针变量与被指变量间的指向关系。接下来就是如何通过指针变量来间接访问和操作指针所指的变量。9/6/20218华中科技大学计算机学院1.取地址运算符-单目&单目&在C中表示取地址运算。该表达式的一般使用形式是

5、:&右操作数根据表达式的操作语义可知,右操作数必须是一个左值表达式。如果右操作数的类型是T,则表达式&右操作数的类型是T*。9/6/20219华中科技大学计算机学院2.指针的赋值指针的声明只是创建了指针变量,获得了指针变量的存储,但并没有给出指针变量指向那个具体的变量,此时指针的值是不确定的随机值,指针处于“无所指”的状态。例如:用int*p;语句来说明p是一个整型指针变量时,p的值是不确定的随机值。此时称p为悬挂指针。9/6/202110华中科技大学计算机学院例9.5设有下面说明:inti,*pi;charc,*pc;floatx[5],*pf;则:pi=&i;取整型变

6、量i的地址赋给整型指针变量pi.pc=&c;取出字符变量c的地址赋给字符指针变量pc.pf=&x[0];和pf=x;的作用相同,均表示将x数组的起始地址赋给指针变量pf,使pf指向x数组的第一个元素x[0]。数组名x的数据类型是float*,并且标识x数组的起始地址,因此语句pf=x;合法有效。9/6/202111华中科技大学计算机学院3.间访运算符单目*声明指针的目的是希望通过指针实现对内存中变量的快速访问,必须使用单目*这个间访运算符才能实现利用指针对内存变量的访问。间访的含义是间接访问。单目*运算实际上是单目&运算的逆运算.使用单目*间访变量的一般形式是:*操作数“

7、*操作数”称为间访表达式,它的操作语义是引用以操作数之值为地址的变量。操作数也可以是表达式,但其值必须是地址值。间访表达式的值是一个左值,代表指针所指的变量。而指针所指的变量的类型就是间访表达式运算结果的类型。9/6/202112华中科技大学计算机学院例9.6间访运算符的基本操作举例。设有声明和赋值:charch=’a’,*pc=&ch;*pc=’b’;并且假设字符变量ch的地址是0x1b2a,试问ch,pc,以及*pc的值是什么?9/6/202113华中科技大学计算机学院4.无值型指针类型为void*的指针称为无值型指针或v

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

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

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