C语言程序设计08(二维数组)解析.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章内容 二维数组 二维数组的定义与初始化 二维数组的引用 指向二维数组的指针 二维数组的地址 列指针 行指针 二维数组及其指针作函数参数 二维数组作函数参数 指向二维数组的指针作函数参数 课堂练习1 #include stdio.h void main() { int a[ ]={1,3,5,7,9,11,13,15,17,19}; int i; for(i=0;i=7;i+=2) printf(“%d”,a[i]); } 程序执行过后,输出的结果是什么? 课堂练习1的问题 数组a包含多少个元素?数组元素的下标范围是多少? 程序中的for循环体能被执行几次?循环控制变量i的值是怎样变化的? 在循环过程中,数组a的哪些元素的值被输出了? 课堂练习2 void main ( ) { int n = 10 ; while (n--) printf (%d,--n); } 程序执行过程中,输出的结果是什么? 课堂练习2的问题 n--与--n的区别是什么? 程序中的while循环体能执行几次? 程序执行过后,n的值是多少? 课堂练习3 #include stdio.h void main() { int x=1, a=0, b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++; b++ ; } printf(a=%d, b=%d\n, a, b) ; } 课堂练习3的问题 break的作用是什么? 在switch结构中,用于退出当前分支结构 在循环结构中,用于退出当前层次的循环 8.2 多维数组的概念 在C语言中,若数组元素又是数组,这种数组就是多维数组。 具有相同数据类型的二维表格数据,可以使用二维数组来表示,这种数据结构又称为矩阵。 在C语言中,还可以使用三维或多维数组,但很少出现。 在计算机中,多维数组只是一个逻辑概念,在内存中,多维数组元素的排列顺序“按行优先”存放,其排列顺序为:第一维的下标变化最慢,最右边的下标变化最快。最后形成一个就像一维数组一样的序列。 8.2.1 二维数组的定义 在C语言中,二维数组定义的一般形式为: 数据类型 数组名[整型常量表达式1][整型常量表达式2]; 二维数组的元素个数为 整型常量表达式1×整型常量表达式2 各个元素的下标仍然从0开始 二维数组中的“表达式1”和“表达式2”分别称为数组的行和列。因此,二维数组定义的一般形式又可表达为: 数据类型 数组名[行数][列数]; 二维数组实例 执行 int a[3][4];表示定义了一个3行4列的二维数组,共12个元素,每个元素均是int型数据。 二维数组元素在矩阵中的位置如下: 二维数组可看成若干元素的一维数组 定义二维数组int a[3][4]; 可以看成具有三个元素的一维数组: a[3]=={a[0],a[1],a[2]}; 一维数组的每个元素又是一个一维数组: a[0]:{a[0][0],a[0][1],a[0][2],a[0][3]} a[1]:{a[1][0],a[1][1],a[1][2],a[1][3]} a[2]:{a[2][0],a[2][1],a[2][2],a[2][3]} 即定义:int a[3][4]; 相当于定义: int a[0][4],a[1][4],a[2][4]; 2. 二维数组的存储 在内存中,二维数组元素遵循“按行优先”的原则进行存放。即:先存储第1行各元素,再存储第2行各元素,依此类推。 如定义:int a[3][4]; 则内存中的存储顺序依次为: 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] 二维数组元素在内存中的存储顺序号 如果定义:int a[3][4]; 该数组各元素在内存中是“按行优先”原则依次存放的,也就是说,二维数组的各元素在内存中的存放形式可以看成是一个一维数组。 二维数组下标与对应的一维数组下标可以使用如下公式计算:i*N+j(即:二维数组元素在内存中的存储序号) 其中:N为二维数组定义时给出的列长度,i为二维数组的行下标,j为二维数组的列下标。 二维数组的初始化 二维数组与一维数组一样,可以在定义二维数组时对其各元素进行初始化赋值。 按行赋初值: int a[2][3]=

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档