C语言程序设计课件第5章.ppt

C语言程序设计课件第5章.ppt

ID:57057145

大小:928.50 KB

页数:38页

时间:2020-07-30

C语言程序设计课件第5章.ppt_第1页
C语言程序设计课件第5章.ppt_第2页
C语言程序设计课件第5章.ppt_第3页
C语言程序设计课件第5章.ppt_第4页
C语言程序设计课件第5章.ppt_第5页
资源描述:

《C语言程序设计课件第5章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高级语言程序设计2021/7/281第五章一级指针与一维数组主讲:计算机学院朱立华内容提要直接引用与间接引用的不同方式及实质指针是地址的类型,是对地址进行的一种类型抽象,用来实现间接访问,掌握以下指针的知识指针类型与指针的基类型指针的基本操作:间接引用、加减整数、逻辑及关系运算指针与一维数组的关系,如何用指针操作一维数组一维数组专用于一批类型相同的变量的处理一维数组的定义及初始化,一维数组的基类型(数组的元素类型)与指针基类型的一致性,一维数组名就是指针常量访问一维数组元素的方式——间接引用方式,可随机访问一维数组元素在内存中的存储方式,可随机访问元素的实质一维数组中的常见操作及算法:

2、输入、输出、逆置、查找、插入、删除、排序2021/7/283间接引用的必要性内容回顾:intm;表示定义一个变量,m是变量名,即变量空间名,直接用m访问的是变量空间中的内容,称为直接引用一个算法问题:输入10000个整数并求平均值,并且保留这些原始数据到最后统一输出解决方案:将这10000个整数看作逻辑上前后相邻的并且可以存储在内存中一片连续的区域,只要知道这些数在内存中的起始地址,就能找到对应的空间,进而访问空间中的内容,这就是间接引用方式,因此:要有变量可以存放地址--指针;要有类型可以定义一个标识符代表一组连续空间的起始地址--一维数组用第4章的循环可以求解,定义1个变量,在

3、循环体中读入值并求和用1个变量不能达到这一要求,根据前面的知识,似乎应该定义10000个变量,可是这样又无法用循环控制间接引用方式下,传递某一个数据地址(一般是第1个数据的地址)相当于传递了全部数据2021/7/284一级指针类型(引言)C语言优越于其他高级语言的一个特性就是:可对硬件编程;通过第一章机器语言程序设计的学习,在计算机内部访问操作数首先是读取其在内存中的存储地址值,然后通过该地址值去访问该地址所在空间中的内容C语言为了实现对硬件编程,必定要将内存地址抽象为一种类型,这就是(一级)指针类型,即指针类型是地址的类型,该类型的常量和变量值都是内存地址值。地址值是无符号整数,无论

4、该地址的内存中数据是什么类型,地址值都占4个字节显然,知道地址值是为了操作这个地址中所存储的内容。通过地址来访问数据空间的方式称为间接引用通过该地址去间接引用的数据类型称为地址的基类型前面学习的通过存储空间的名称引用数据的方式称为直接引用这两种类型有区别也有联系2021/7/285一级指针类型(概述)直接引用与间接引用:在C语言源程序中的直接引用方式经编译后在计算机内部实质上是间接引用,例如源程序中有下列代码:intn,m;//定义2个整型变量,n和m是变量名doublex;//定义1个双浮点型变量,x是变量名表n=5;//直接引用,给n赋值5m=n;//直接引用,将n中的值赋给mx=

5、3.1415;//直接引用,给x赋值3.1415经编译后,变量名消失,留下其地址及类型信息,如下表:变量名变量值地址类型x3.14150x12ff70doublem50x12ff78intn50x12ff7cint源程序中目标程序中地址的基类型到哪里访问数据指示编译器怎样操作特定地址上的内存区域:该区域包含多少连续的字节,数据存储的格式,以及可以实施哪些基本操作2021/7/286一级指针类型(概述)C语言中,用一级指针类型作为地址的类型。地址关联着两个存储空间,存放着两种不同的值,彼此又有紧密的联系,以上页表中地址0x12ff78为例如下:(int*)0x12ff78m0x12ff7

6、85整型变量m的空间,此为变量空间编译后指向m的地址值,是指针常量值因此,一级指针类型是复合类型,由指针的基类型名称加”*”共同组成,例:int*----->整型指针类型,即指针所指向的空间存int值double*----->双浮点型指针类型指针字面值常量,即指针常量空间的名称2021/7/287一级指针类型(用*间接引用)利用指针去访问它指向的基类型的空间分两步:(1)通过指针字面值常量取出基类型空间的地址,这是直接引用(2)加间接引用运算符“*”,得到与基类型空间名称等价的表达式,称为间接引用表达式,这是间接引用(int*)0x12ff78m0x12ff785因此,*(int*)0

7、x12ff78与m完全等价,m=5;也可以写成:*(int*)0x12ff78=5;上机在VC++下演示程序5.1总结:间接引用运算符*使得指针可以访问其基类型空间动态演示过程2021/7/288一级指针类型(基本操作)指针的基本操作——加减一个整数(1)指针加一个整数i,是将当前地址值加上i*sizeof(基类型)(2)指针减一个整数i,是将当前地址值减去i*sizeof(基类型)总结:理论上,指针可以加减任何整数,但必须保证结果指针指向应用

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

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

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