C语言程序设计-数组指针.ppt

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

第七章  数组 目标 理解为什么要使用数组 理解 C 语言中数组 熟练掌握一维数组的使用 掌握二维数组的使用 熟悉用数组实现常用的算法 为什么要使用数组 C 语言中的数组 5.1.1 一维数组的定义 定义一维数组的语法格式为: 类型 数组名[常量表达式]; int b[5]; 例如,对上面定义的整型数组b,在内存中的存放顺序如图5-1所示: 数组的初始化: 在定义数组时对其中的全部或部分指定初始值,这称为数组的初始化。只有存储类别为静态的或外部的数组才可以进行初始化。 初始化的语法格式为: 类型 数组名[ 数组范围 ]={值1,值2,…,值n} 例如:对在5.5.1小节中定义的数组a进行初始化。 char a[5]={’a’,’b’,’c’,’d’,’e’}; 或: char a[ ]={’a’,’b’,’c’,’d’,’e’}; 字符型数组的初始化: 还可将整个字符型数组一次性赋值为一个字符串,此时花括号可以省略。例如,下面三种初始化赋值方式是等价的: char d[6]={ ’h’ , ’e’ , ’l’ , ’l’ , ’o’ , ’\0’ }; char d[6]={”hello”}; char d[6]=”hello”; 后两种方法比较符合用户的习惯。 数组的赋值 与数组元素的初始化不同,在给数组元素进行赋值时,必须逐一赋值。 例如:对于下述的数组初始化: int a[3]={1,2,3}; 其等价的赋值形式如下: int a[3]; a[0]=1; a[1]=2; a[2]=3; 若要在数组之间进行赋值,也只能一个一个元素地赋值。 例如:将上述数组a的值赋给另一个同样大小的数组b,可以利用下面的循环完成赋值操作: for (i=0;i3;i++) b[i]=a[i]; 数组越界 例如:定义了一个整型数组a: int a[10]; 数组a的合法下标为0~9。如果程序要求给a[10]赋值,将可能导致程序出错,甚至系统崩溃。 数组应用1 二维数组 二维数组的定义 二维数组也称为矩阵,需要两个下标才能标识某个元素的位置,通常称第一个下标为行下标,称第二个下标为列下标。定义二维数组的语法格式为: 类型 数组名[常量表达式1][常量表达式2]; 第一个常量表达式标识数组的行数,第二个常量表达式标识数组的列数。 例如: int a[2][3]; 上面定义了一个a数组,它在逻辑上的空间形式为2行3列,每一个数组元素都是整型数据,因此a数组的各元素如下: a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] //每一维的下标都是从0开始 可见,二维数组中每个元素都是用下列方式标识: 数组名[行下标][列下标] 由于二维数组在内存中是线性排列的,引用一维数组和引用二维数组都是引用相应存储地址的内容,因此可以计算出一个二维数组元素在对应一维数组中的顺序号,从而将对二维数组元素的引用转变为对一维数组元素的引用,这个过程称为“降维处理”(经常在向函数传递数组时用到)。 举例来说,假设有一个m x n的二维数组a,其中第i行第j列元素a[i][j]在数组中的位置公式为: i*n+j+1 例如有一个3*4的矩阵a: ? a00 a01 a02 a03 a= a10 a11 a12 a13 a20 a21 a22 a23 a21元素在数组中的位置是2*4+1+1=10。即它在数组中是第10个元素。对一个aij元素(在C++语言中表示为a[i][j]),在它前面有i行(对a21来说它前面有两个整行),这i行共有i*n个元素。在aij所在行中,aij前面还有j个元素,因此在数组a中aij前面共有(i*n+j)个元素。那么aij就是第(i*n+j)+1个元素。如果顺序号从0算起,那么aij在a数组中的顺序号计算公式为i*n+j。a21的顺序号为2*4+1=9。即按从0算起的话,它的顺序号为9,或者说它前面有9个元素。 二维数组初始化 和一维数组一样,二维数组也能在定义时被初始化,只是要注意必须按照前面所讲的存储顺序列出数组元素的值。常见有如下一些初始化方式: (1)分别对各元素赋值,每一行的初始值用一对花括号括起来。例如: int a[2][3]={{1,2,3},{4,

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档