第4章数组-教学课件.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 数组数组是复杂数据类型的代表之一,也称构造类型,用于存放一组相同类型数据的有序变量集合。C语言支持一维数组和多维数组。那么数组是如何定义的?如何存储的?如何操作的?主要内容4.1一维数组4.2二维数组4.3字符数组4.4用C++语言处理字符串本章小结4.1一维数组数组是一组有序数据的集合。数组元素在内存中连续存放,每个元素都属于同一种数据类型,最低地址单元对应于数组第一个元素,最高地址单元对应于数组最后一个元素。下标代表数组元素的序号,用数组名和下标可以唯一地确定数组元素并进行操作。数组的每一个元素都属于同一个数据类型,不能把不同类型的数据放在同一个数组中。 4.1.1定义一维数组定义的形式如下: 类型说明符 数组名[常量表达式]; 类型说明符可以是任一种基本数据类型或构造数据类型。数组名是用户自定义的标识符。方括号中的常量表达式表示数组元素个数,也称数组长度。例如 int a[10]; //定义整型数组a,有10个元素 float b[20]; //定义单精度浮点型数组b,有20个元素 double c[30]; //定义双精度浮点数型数组c,有30个元素 一维数组定义是一条完整的C语言语句,每条定义语句结束后,用分号“;”结束。当需要定义多个同类型数组时,用逗号 “,”进行连续定义。 例如int a[10],b[10]; //定义整型数组a和b,分别可放10个元素 float c[20],d[20]; //定义整型数组c和d,分别可放20个元素 double e[30],f[30]; //定义整型数组e和f,分别可放30个元素 C语言不允许缺省数组长度或缺省方括号。 例如:定义int a[];是错误的定义,定义int a和int a3是定义一个变量而不是数组。数组名不能与其它变量名相同。例如:程序中同时出现语句int a; float a[10];是错误的。C语言数组长度必须是常量表达式,不能用变量来表示数组长度。例如:int n=4;int a[n]; 是错误的。但可用关键字define定义符号常量来标识数组长度。#define N 5 //define定义符号常量N=5,放在mian函数外……int a[N]; 4.1.2存储一维数组存储方式是在内存中连续开辟存储空间,依次存放数据元素。数组分别存储a[0]到a[N-1]的N个元素,其中N是描述数组长度的常量表达式。 例如:int a[8];表示数组a有8个元素,其下标从0开始计算,分别为:a[0], a[1], a[2], a[3], a[4] , a[5] , a[6] , a[7] 。 存在数组所需的内存量与类型说明符的数据类型和数组长度有关,以字节为单位的总内存量计算公式为:总字节数 = sizeof (数据类型)×数组长度例如:int a[8];若初始地址为22040,每个整型变量占2个字节,共16字节,因此,地址依次为22040(a[0]),22042(a[1]),22044(a[2]),……,22056(a[7])。数组元素引用的形式:数组名[下标]下标表示了元素在数组中的顺序号,下标最大值为数组长度N-1。下标只能为整型常量或整型表达式。例如:a[5]; a[i+j]; a[i++];如果下标为浮点数时,C语言编译时将自动取整。思考 int a[5.46]; ?4.1.3引用例如: for(i=0; i10; i++) scanf(%d,a[i]);对一维数组而言,目标地址的计算由基地址和偏移量决定,其中偏移量是数组第i个元素与第0个元素的偏差。计算公式:a[i]地址 = 基地址 + sizeof (数据类型) ×i对于数组的整体引用或整体赋值需要用循环语句来逐个操作数组元素。例如: for(i=0; i10; i++) printf(%d,a[i]);数组访问不能越界,即数组长度N-1。动态赋值的形式:数组名[常量表达式] = 值; 其中常量表达式不能大于数组长度,如果出现这种情况,则称为数组越界。 动态赋值只能每次对一个数组元素进行赋值例如:int a[5]; 语句a[5]={5,6};和a[5,6]=7;都是错误的。 4.1.4初始化数组赋值分为初始化赋值方法和动态赋值方法。初始化赋值的形式: 类型说明符 数组名[常量表达式] = {值,值…….值 };例如:int a[10]={0,1,2,3,4,5,6,7,8,9}; 等价于赋值语句 a[0]=0; a[1]=1; ... a[9]=9;初始化赋值可以只给部分元素赋初值。例如:int a[10]={0,1,2,3,4};表示只给a[0]到a[4]的5个元素赋值,而后5个元素值未知。初始化赋值只能逐个给元素赋值,不能给数组整体赋值。例如:int a[10]={1,1

文档评论(0)

moon8888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档