计算导论与程序设计课件-chap10二维数组.pptx

计算导论与程序设计课件-chap10二维数组.pptx

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 多维数组选自C Primer Plus 10.2提纲二维数组的表达对象二维数组的定义和初始化二维数组在内存中的存放二维数组的逐元素访问二维数组名做函数实参二维数组的应用指针与多维数组1.二维数组的表达对象√案例:气象分析员要分析近5年中每月的降水量数据,求每年的平均降水量,以及这5年每月的平均降水量。问题:如何表示这些数据?用60个变量?用5个一维数组?可是,如果要分析50年的数据,又该怎么办?使用一个元素为数组的数组(二维数组)float rains[5][12]; 0,23,45 23,0,39 45,39,0 10,23,45 26,88,39 77,53,68A村B村C村A村B村C村1.二维数组的表达对象工程中经常要使用矩阵来表达数据,进行运算二维数组的表达对象:矩阵。矩阵中元素类型相同,元素通过所在行和列进行标识。 提纲二维数组的表达对象二维数组的定义和初始化二维数组在内存中的存放二维数组的逐元素访问二维数组名做函数实参二维数组的应用指针与多维数组2.二维数组的定义和初始化一、二维数组的定义 类型说明符 数组名[常量表达式1][常量表达式2]; 常量表达式1:表示第一维下标的长度,运算结果为整型 常量表达式2:表示第二维下标的长度,运算结果为整型 例如:int a[3][4]; 定义了一个3行4列的数组,数组名为a。该数组共有3*4个元素,用于存储3行4列的矩阵。 第0列 第1列 第2列 第3列第0行第1行第2行2.二维数组的定义和初始化二、二维数组元素的表示方法 二维数组的元素也称为双下标变量,表示形式为:数组名[行下标][列下标] 下标应为整型常量、整型变量或整型表达式。 例如:a[2][1] 表示a数组第2行第1列的元素。 第0列 第1列 第2列 第3列a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]第0行第1行第2行数组名列下标行下标提纲二维数组的表达对象二维数组的定义和初始化二维数组在内存中的存放二维数组的逐元素访问二维数组名做函数实参二维数组的应用指针与多维数组3.二维数组在内存中的存放实际的存储器是连续编址的,也就是说存储器单元是按一维线性排列的。 如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。按行顺次存放,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。3.二维数组在内存中的存放int a[3][4] ;第1行第0列元素的地址表示:printf(%p\n, a[1][0]);printf(%p\n, a[1]);以上两种方式是等价的!二维数组可以看成是一维数组组成的数组,a[1]代表的是一维数组的数组名。a[0]a[1]a[2]C语言中二维数组是按行排列的3.二维数组在内存中的存放......a[0][3]a[0][2]a[0][0]a[0][1]a[0]a[1]a[1][3]a[1][1]a[1][2]a[1][0]a[2]理解int a[3][4]:int a[3][4]:a是一个包含3个元素的数组int a[3][4]:a中每个元素的类型是int [4]即:a具有3个元素,每个元素是包含4个int数值的数组。如:a[0]是一个数组,其元素为: a[0][0], a[0][1], a[0][2], a[0][3].3.二维数组在内存中的存放A[i]的内存地址:A+i*M(M是一个数组元素的字节数)A[1]因此,要访问一个一维数组元素, 要知道数组首地址、下标。A[i][j]的内存地址:A+(i*数组列数+j)*M因此,要访问一个二维数组元素,除了要知道数组首地址、行下标、列下标,还需要知道数组的列数。2.二维数组的定义和初始化三、二维数组的初始化在定义时对二维数组进行初始化有两种方式:按行分段赋值和按行连续赋值。例如对数组a[5][3]:1.按行分段赋值可写为 int a[5][3]={ {80,75,92},{61,65,71},{59,63,70}, {85,87,90},{76,77,85} };2.按行连续赋值可写为 int a[5][3]={ 80,75,92,61,65,71,59,63,70,85,87, 90,76,77,85 };这两种赋初值的结果是完全相同的。提纲二维数组的表达对象二维数组的定义和初始化二维数组在内存中的存放二维数组的逐元素访问二维数组名做函数实参二维

文档评论(0)

JuanHuang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档