网站大量收购独家精品文档,联系QQ:2885784924

第7讲:数组.ppt

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

本讲主要内容 一、 一维数组 二、 二维数组 三、 函数的使用 四、 字符串处理函数 五、 C++字符串类型 数组是一系列数据按先后顺序有序排列而成的数据集合。引用数组中的某个数据元素需要通过数组的下标来索引。数组中的所有数据元素的类型都是一样的。 一个数组在内存中占 据一块连续的存储单元。 如果有一个有10个元素的 short型数组a,假设数组 的起始地址为2000,则该 数组在内存中的存储情况 如右图所示。 c语言中,用[ ]表示数组的下标,如a[3]表示数组a中第4个数据元素。数组中的第一个元素的下标为0。 1.1 定义一维数组 定义一维数组的一般格式为 类型标识符 数组名[常量表达式] 如定义含10个整型数据的数组A: int A[10]; 常量表达式的值表示元素的个数,即数组长度。 常量表达式的值必须是整数而且必须是常量。 对数组中元素的使用不能超过数组的长度。 指出下列程序中的错误 void main() { int n=10; int A[n*2]; a[20]=4; couta[20]; } 1.2一维数组的元素的索引 和变量一样,数组必须先定义,然后使用。数组元素索引用使用 数组名[下标]的形式 ,如索引数组A中的第5个元素:A[4]。这里的下标可以是常量也可以变量表达式。 例:向数组中输入10个无序的整数。然后采用冒泡排序将数组元素从小到大排序。 冒泡排序:从第一个元素开始,将之与其后的元素比较,如果比其后面的大,那么将他们的位置交换,一直比较到最后一个元素,这样整个数组中最大的那个元素就被放置在最后位置;再从第一个元素开始一次其后的元素比较,如果比后面的大就交换位置,一直比较到最后倒数第二个,这样剩下元素中最大被放到倒数第二的位置,依次进 行同样的操作,直到所有的元素都处理完毕。 void main( ) { int A[10]; int temp; for( int i=0;i10;i++) cinA[i]; //依次输入整数值入数组 } 1.3 一维数组初始化 在定义数组时可同时对数组元素赋予初值。如: int A[10]={0,1,2,3,4,5,6,7,8,9}; 初始化时可以只给一部分元素赋值。如: int A[10]={0,1,2,3,4}; 这时会只给前五个元素赋值。 在对全部数组元素赋初值时,可以不指定数组长度。如 int A[5]={1,2,3,4,5}; 可以写成 int A[]={1,2,3,4,5}; 这时,系统会自动给数组开拓5个元素的空间。 注意:上面介绍的初始化形式只有在定义数组的同时进行初始化才可以。如果写成 int A[4];A[4]={1,2,3,4} 是不可以的。如果要先声明在初始化,只能逐个元素赋值 例:将一个字符串存放于数组,然后将之逆序输出 int main( ) { char str[ ]={‘a’,’b’,’c’,’d’,’e’}; cout“the reversed string is:” for (int i=4;i=0;i--) coutstr[i]; return 0; } 2.1 定义二维数组 一维数组是具有线性关系的一系列数据在一个方向上的排列,即在一维空间中的线性排列,有些数据是分布在二维空间中的,如在一副数字图像中的像素颜色值,我们需要知道每个像素在二维平面内的坐标。可以通过定义二维数组来表示。二维数组具有两个下标 ,分别表示来两个维度上的索引。 定义二维数组的形式: 类型标识符 数组名[常量表达式1][常量表达式2 ] 如定10行20列的一个整数数组: int A[10][20]; 我们可以把二维数组看作是一种特殊的一维数组:它的每个元素又是一个一维数组。如,可以把A[10][20]看作是一个一维数组,它有10个元素:A[0],A[1]….A[9],每个元素又是一个包含20个元素的一维数组. 在逻辑上我们可以把二位数组看成是某些行和某些列组成 ,但在内存中,二维数组中所有的这些元素并不是一个二维分布,他们是依次存放在内存中的。二维数组元素在内存中的存放有行优先和列优先之分。行优先是将二维数组的每一行中的元素依次存入内存,存完第一行后再存放第二行。列优先是将数组的每一列依次存入内存。下图表示了行优先

文档评论(0)

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

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

1亿VIP精品文档

相关文档