您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 21天学通C++-第七章-数组
联系方式:北京源智天下科技有限公司第七讲:数组杨章伟e-mail:jtclass@163.com1-2北京源智天下科技有限公司联系方式:课程内容安排•声明数组•引用数组•数组的赋值•字符串•数组与函数•数组应用•综合练习•思考和习题1-3北京源智天下科技有限公司联系方式:声明数组•数组是由一组具有相同数据类型的元素组成的集合,数组的类型就是这组元素的数据类型。构成数组的这组元素在内存中占用一组连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。•严格来说,数组并不是一种数据类型,而是一组相同类型的变量的集合。在程序中使用数组的好处是可以用一个统一的数组名代表逻辑上相关的一组数据,并用下标表示各元素在数组中的位置。比如,在汽车生产车间,依次摆着10辆新生产的汽车,其编号分别为第1辆,第2辆…,那么这就是一个汽车数组,可以表示位汽车1,汽车2……,如图1-1所示。1-4北京源智天下科技有限公司联系方式:辆……汽车[1]汽车[2]汽车[3]汽车[9]汽车[10]1-5北京源智天下科技有限公司联系方式:声明数组•和普通的变量一样,数组在使用前都必须先声明。数组的声明分为一维数组和多维数组的声明,这是根据数组的分类来区分的。一维数组在具体程序中使用是非常广泛的,在使用一维数组前,先简单看一下其声明。一维数组的声明一般形式为:•类型名数组名[下标表达式]={初值表};•多维数组是在一维数组声明方式的基础上,增加下标的维数,也即增加[]的个数,声明格式中定义了n个[],就表示n维数组。一般来说,多维数组的声明格式如下所示:•类型名数组名[下标表达式1][下标表达式2]…[下标表达式n]1-6北京源智天下科技有限公司联系方式:引用数组在声明数组时用数组名表示该数组的整体,但C++语言没有提供对数组进行整体操作的运算符和运算,而针对每个数组元素进行操作时,数组元素一般是通过下标变量来区分的,这就涉及到在具体应用中如何引用数组元素的问题。据数组的分类,对数组的引用也可分为一维数组的引用和多维数组的引用。本小节将介绍一维数组的引用。一般来说,一维数组的数组元素引用的一般形式为:数组名[下标]其中,下标指明了数组中每个元素的序号,下标值为整数,用数组名加下标值就可以访问数组中对应的某个元素。1-7北京源智天下科技有限公司联系方式:引用数组多维数组的引用与一维数组类似,其引用也根据下标的变化从0~n-1取值即可。与一维数组不同的是,多维数组含有多个[],因此其中每个[]中的下标都需要从0~n-1变化。一般来说,一个n维数组的数组元素引用的一般形式为:数组名[下标1][下标2]…[下标n]以二维数组为例,二维数组的数组元素引用形式为:数组名[行下标][列下标]二维数组是多维数组中应用最广泛的一种,二维数组的数组元素个数是其行和列的下标乘积。例如,二维数组a[3][4],其包含的数组元素个数为3×4=12个。1-8北京源智天下科技有限公司联系方式:数组的赋值•数组的赋值是对数组操作的一个重要部分,其主要包括初始化数组和在应用中对数组进行赋值。对数组的赋值方法较多,本节将重点介绍3种方法。•通过赋值表达式赋值•通过输入语句赋值•通过循环语句赋值1-9北京源智天下科技有限公司联系方式:字符串•字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型。•字符串的两种实现形式:•1、传统字符串•2、字符数组1-10北京源智天下科技有限公司联系方式:数组与函数•在实际的应用中,数组经常作为函数参数,将数组中数据传送到另一个函数中。一般来说,传递可以采用两种方法:•数组元素作为函数的参数:当把数组元素作为函数的实参时,它的用法与普通变量作参数相同。将数组元素的值传送给形参进行函数体调用,函数调用完返回后,数组元素的值不变。这种传送方式是“值传送”方式,即只能从实参传送给形参,而不能从形参传送给实参。•数组名作为函数的参数:当用数组名作为函数的实参和形参时,传递的是数组的地址。这时实参数组和形参数组应该分别在它们所在的函数中定义。此时采取的不是“值传送”方式,而是“地址传送”方式,即把实参数组的起始地址传送给形参数组1-11北京源智天下科技有限公司联系方式:数组应用•在实际的应用中,数组的使用是很频繁的。这是由于实际生活中,经常需要处理相同类型的一类事物,这就需要使用到数组。•此处主要介绍数组的两种应用:•1、查找•2、排序1-12北京源智天下科技有限公司联系方式:综合练习•该范例从键盘上输入10个整型数字,将其中重复的数字去掉的,并将剩余数字的按照小到大的顺序输出。1-13北京源智天下科技有限公司联系方式:(inta[],intn);//声明函数sort3intmain()4{5inti,a[10];//定义整型变量和数组6coutPleaseinput10numbers:endl;//输入提示7for(i=0;i10;i++)//给数组赋初值8cina[i];//接收从键盘的输入9sort(a,10);//冒泡排序10coutTheresultis:endl;11for(i=1;i10;i++)//扫描数组12if(a[i]!=a[i-1])//如俩俩重复则不输出,否则输出13couta[i];//输出元素,中间以一个空格隔开14coutendl;//输出换行15return0;16}17voidsort(inta[],intn)//冒泡排序18{19inti,j,t;//定义整型变量20for(i=0;in;i++)//进入循环21for(j=i+1;jn;j++)22if(a[i]a[j])//前一个元素大于后一个元素23{24t=a[i];//交换两个元素25a[i]=a[j];26a[j]=t;//交换完成27}28}1-14北京源智天下科技有限公司联系方式:思考和习题•数组在内存中的存储顺序是怎样的?一维数组和二维数组的存储有何不同?•数组的赋值或初始化可以通过哪几种方式来实现?•字符串数组常用的几个函数分别是什么?•数组用作函数参数进行传递时要注意哪些事项?•数组在实际中的应用主要在哪些方面?
本文标题:21天学通C++-第七章-数组
链接地址:https://www.777doc.com/doc-6125633 .html