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

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计 第五章 一级指针与一维数组 内容提要 直接引用与间接引用的不同方式及实质 指针是地址的类型,是对地址进行的一种类型抽象,用来实现间接访问,掌握以下指针的知识 指针类型与指针的基类型 指针的基本操作:间接引用、加减整数、逻辑及关系运算 指针与一维数组的关系,如何用指针操作一维数组 一维数组专用于一批类型相同的变量的处理 一维数组的定义及初始化,一维数组的基类型(数组的元素类型)与指针基类型的一致性,一维数组名就是指针常量 访问一维数组元素的方式——间接引用方式,可随机访问 一维数组元素在内存中的存储方式,可随机访问元素的实质 一维数组中的常见操作及算法:输入、输出、逆置、查找、插入、删除、排序 间接引用的必要性 内容回顾:int m; 表示定义一个变量,m是变量名,即变量空间名,直接用m访问的是变量空间中的内容,称为直接引用 一个算法问题:输入10000个整数并求平均值,并且保留这些原始数据到最后统一输出 解决方案:将这10000个整数看作逻辑上前后相邻的并且可以存储在内存中一片连续的区域,只要知道这些数在内存中的起始地址,就能找到对应的空间,进而访问空间中的内容,这就是间接引用方式,因此: 要有变量可以存放地址--?指针; 要有类型可以定义一个标识符代表一组连续空间的起始地址--?一维数组 一级指针类型(引言) C语言优越于其他高级语言的一个特性就是:可对硬件编程;通过第一章机器语言程序设计的学习,在计算机内部访问操作数首先是读取其在内存中的存储地址值,然后通过该地址值去访问该地址所在空间中的内容 C语言为了实现对硬件编程,必定要将内存地址抽象为一种类型,这就是(一级)指针类型,即指针类型是地址的类型,该类型的常量和变量值都是内存地址值。地址值是无符号整数,无论该地址的内存中数据是什么类型,地址值都占4个字节 显然,知道地址值是为了操作这个地址中所存储的内容。通过地址来访问数据空间的方式称为间接引用 通过该地址去间接引用的数据类型称为地址的基类型 前面学习的通过存储空间的名称引用数据的方式称为直接引用 一级指针类型(概述) 直接引用与间接引用: 在C语言源程序中的直接引用方式经编译后在计算机内部实质上是间接引用,例如源程序中有下列代码: int n,m; //定义2个整型变量,n和m是变量名 double x; //定义1个双浮点型变量,x是变量名表 n=5; //直接引用,给n赋值5 m=n; //直接引用,将n中的值赋给m x=3.1415; //直接引用,给x赋值3.1415 经编译后,变量名消失,留下其地址及类型信息,如下表: 一级指针类型(概述) C语言中,用一级指针类型作为地址的类型。 地址关联着两个存储空间,存放着两种不同的值,彼此又有紧密的联系,以上页表中地址0x12ff78为例如下: 一级指针类型(用*间接引用) 利用指针去访问它指向的基类型的空间分两步: (1)通过指针字面值常量取出基类型空间的地址,这是直接引用 (2)加间接引用运算符“*”,得到与基类型空间名称等价的表达式,称为间接引用表达式,这是间接引用 一级指针类型(基本操作) 指针的基本操作——加减一个整数 (1) 指针加一个整数i,是将当前地址值加上i*sizeof(基类型) (2) 指针减一个整数i,是将当前地址值减去i*sizeof(基类型) 一级指针类型(基本操作) 指针的其它基本操作: (1) 指针可以进行逻辑运算,例:!(int*)0x12ff00的结果为0 (2) 指针可以进行关系运算,例:(int*)0x12ff00(int*)0x12ff08 的结果为1(真) (3)两个类型相同的指针(即基类型相同的指针)可以相减,地址大的减地址小的,结果为两个地址间区域所含基类型数据个数。 一维数组类型(概述) 将物理上前后相邻、类型相同的一组变量作为一个整体引入C语言,这个整体称为(一维)数组类型的变量,简称(一维)数组,其中每一个变量称为数组元素,变量的个数称为数组长度或数组容量。 引入数组的目的:利用间接引用方式,访问一组数据。具体地说,从第一个数组元素的地址,计算出其他所有数组元素的地址,然后通过数组元素的地址,间接访问数组元素。 定义一个数组:需要: (1)指定数组名,这个名称代表着第一个数组元素的指针,是一个指针常量,等价于一个指针字面值常量,称为数组指针 (2)指定数组元素的类型,它是数组指针的基类型,是间接引用方式的基础 (3)指定数组长度,即数组包含的元素个数,它决定了数组指针在进行加减整数的算术运算时的有效范围 一维数组类型(数组定义) 数组的定义格式为: 类型标识符 一维数组名[整型常量表达式]; 例:int a[5]; 一维数组类型(数组定义) 一维数组类型(初始

文档评论(0)

一天一点 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档