C语言程序设计教程第09章二维数组的应用.ppt

C语言程序设计教程第09章二维数组的应用.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计教程第09章二维数组的应用.ppt

第9章 二维数组的应用 9.1 了解二维数组 9.2 二维数组的简单应用 9.3 利用地址和指针访问二维数组 9.4 二维数组名作函数的实参 9.5 二维数组操作中的常用算法介绍 9.1 了解二维数组 9.1.1 二维数组的用途 9.1.2 二维数组的定义 与一维数组一样,二维数组也必须先定义,然后才可以使用。定义语句的形式如下: 类型名 数组名[常量表达式1] [常量表达式2],……; 二维数组的定义形式与一维数组相似,所不同的是增加了一个用方括号括起来的常量表达式。这里常量表达式1用来指定二维数组的行数;常量表达式2用来指定二维数组的列数。由于C语言规定了数组下标值的下限一律为0,所以二维数组行下标的上限为常量表达式1的值减1;列下标的上限为常量表达式2的值减1。 前面提到的存放4名学生3门课成绩的二维数组可定义如下: int s[4][3]; 此语句表明:这是一个名为s的4行3列的二维数组;数组中一共可以存储4×3个整型数据;数组行下标的范围是0~3,列下标的范围是0~2。它在逻辑结构上可以看作以下形式的矩阵(或表格): 9.1.3 二维数组元素的引用 二维数组中的元素在逻辑上可以看作构成了一个矩阵,但在物理上仍旧占据的是一串连续的存储单元。这些元素在内存中的排列顺序是“按行”存放,即:先放第0行的元素,再放第1行的元素,依次类推。 如有定义: int x[2][3]; 则数组x在内存中的存储结构如图9-1所示: 二维数组每个元素都具有一个名字——带有双下标的变量。它的一般表示形式为: 数组名[下标表达式1][下标表达式2] 如图9-1中所标出的x[0][0]、x[0][1]、…… 这里每一维的下标都可以是整型的常量、变量或表达式。如:x[i][j]、x[0][j+1]等都是合法的。注意:C语言中二维数组元素的两个下标是分别放在两个方括号中的,不要误写成x[0,0]、x[i,j]这种非法形式。 二维数组元素的引用与一维数组相同,也能够参与同类型变量允许的所有操作。例如: scanf(%d, x[0][0]); /* 输入 */ x[1][0]=x[0][0]; /* 赋值 */ if (x[0][0]10) … /* 条件判断 */ 而语句:x[2][3]=0;则是错误的。因为在定义语句中限定了x数组是一个2×3的数组,其行下标最大值为1,列下标最大值为2。上述引用造成了下标越界。同样是x[2][3],初学者要注意区分它出现在定义语句中和元素引用时的不同含义。 9.1.4 二维数组的初始化 与一维数组一样,可以在定义二维数组的同时为其元素赋初值。 (1)分行给二维数组的所有元素赋初值。例如: int x[3][4]={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} }; 这种形式比较规范和直观:最外层有一对花括号,在其内部,每一行元素的初值分别括在一对花括号中,中间用逗号分隔。 (2)分行为二维数组中部分元素提供初值。例如: int x[3][4]={ {1}, {2}, {3} }; 赋值后,x数组中各元素的值为: 1 0 0 0 2 0 0 0 3 0 0 0 显然,当某一行花括号内初值个数少于该行的元素个数时,系统自动补以初值0。又如: int x[3][4]={ {1,2}, {3,4} }; 赋值后,数组元素值为: 1 2 0 0 3 4 0 0 0 0 0 0 也就是说,当行花括号少于数组的行数时,系统自动为后面的各行补以初值0。 (3)为二维数组赋初值时省略行花括号。例如: int x[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 这里只保留了最外侧的花括号,而省略了用来界定行元素的花括号。此时,系统将按照数组元素在内存中的排列顺序,依次将数据赋给各个元素。 若数据的个数少于元素的个数,系统将自动为其赋初值0。例如: int x[3][4]={1,2,3}; 赋值后的数组元素值为: 1 2 3 0 0 0 0 0 0 0 0 0 (4)通过赋初值确定二维数组中第一维的大小。 在定义二维数组时,可以省略第1个方括号中的常量表达式1,但

文档评论(0)

天马行空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档