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

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

ID:57057146

大小:852.50 KB

页数:37页

时间:2020-07-30

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

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

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

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

3、1个变量,在循环体中读入值并求和用1个变量不能达到这一要求,根据前面的知识,似乎应该定义10000个变量,可是这样又无法用循环控制间接引用方式下,传递某一个数据地址(一般是第1个数据的地址)相当于传递了全部数据2021/9/194计算机内的存储部件,所有指令和数据都保存在内存里速度快,但是掉电即失可以随机访问只要指明要访问的内存单元的地址,就可以立即访问到该单元地址是一个无符号整数,其字长一般与主机相同内存中的每个字节都有唯一的一个地址地址按字节编号,按类型分配空间内存和地址2021/9/195寻址方式如何读写内存中的数据通过对变量在内存所占有的存储单元进行操作,一般的变量名代

4、表了该变量的内容两种寻址方式直接(寻址)访问直接按变量名存取变量内容(指针变量名所代表的是一个地址)间接(寻址)访问通过指针变量来间接存取它所指向的变量内容2021/9/196指针(pointer)的概念指针也是一种数据类型指针变量声明为指针类型的变量,是专门存放地址数据的变量,一般情况下,指针中存放的是另一个变量的首地址2021/9/197指针变量的定义举例:int*p;定义了一个指针变量p,用以存放整型变量的地址此时仅仅定义一个可以指向整形变量的指针,但是没有给p赋值,也就是p没有指向任何整形变量一般形式:类型关键字*指针变量名;指针指向的变量类型,基类型指针类型说明符20

5、21/9/198如何定义指针变量?指针变量初始化:在定义指针变量时给定确切地址inta,b,*p=&a;*p就像普通的变量a一样使用,其值是p指向的内存的内容(在上例和a等价,但寻址方式不同)2021/9/199指针变量赋值在指针变量定义后通过赋值方式获得一个确切地址,有地址值的指针才能间接寻址例:p=&b;此时p中存放的是变量b的地址,*p与b等价,p可动态(任意)地指向不同内存,从而*p代表不同的变量2021/9/1910inti,*p;p=&i;int*p;float*q;p=q;inti;float*p;p=&i;int*p;p=100;判断是真?是假?指针变量只存放地

6、址!一个指针变量不能指向与其类型不同的变量!我是真的,你猜对了吗?应在类型相同的指针变量之间赋值2021/9/1911指针变量与其它类型变量的对比共性在内存中占据一定大小的存储单元先定义,后使用特殊性它的内容只能是地址,而不能是数据必须初始化后才能使用,否则指向不确定的存储单元,对该空间的访问可能造成危险可参与的运算:加、减一个整数,自增、自减、关系、赋值只能指向同一基类型的变量2021/9/1912指针的指向只能指向同一基类型的变量,否则将引起warningfloatx;int*p=&x;TC编译warning:Suspiciouspointerconversioninfun

7、ctionmainVC编译Warning:C4133:'=':incompatibletypes-from'float*'to'int*'2021/9/1913将物理上前后相邻、类型相同的一组变量作为一个整体引入C语言,这个整体称为(一维)数组类型的变量,简称(一维)数组,其中每一个变量称为数组元素,变量的个数称为数组长度或数组容量。定义一个数组:需要:(1)指定数组名,这个名称代表着第一个数组元素的指针,是一个指针常量,等价于一个指针字面值常量,称为数组指针(2)指定数组元素的类型,它是数

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

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

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