资源描述:
《5-数组、指针(c++)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、补充三数组、指针教学目标:1.了解一维数组、二维数组的基本概念;2.掌握数组类型变量的定义与引用;3.掌握数组元素的引用。教学重点:1.一维数组、二维数组的定义与引用;2.字符数组的定义与引用、常用字符串处理函数及字符处理函数。教学难点:数组元素的引用,动态存储分配补充三数组、指针3.1数组3.2指针3.3动态存储分配4.1数组的分类3.1.1一维数组的定义与引用3.1.2二维数组的定义与引用3.1.3字符数组与字符串类3.1.1数组的概念1、定义数组是在基本数据类型基础上构造出来的一种新的数据类型。数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为
2、该数组的元素。它的本质是把相同类型的一些变量有序汇集在一起,由同一个名字、不同的下标来区分各个元素,从而为程序设计带来便利。2、声明与引用数组必须先声明,后使用。一维数组的声明形式:类型说明符数组名[常量表达式];例如:inta[10];表示a为整型数组,有10个元素:a[0]...a[9]一维数组的使用形式(实质元素的引用)数组名[下标]下标:0->数组长度-1说明:只能逐个引用数组元素,而不能一次引用整个数组例如:a[0]=a[5]+a[7]-a[2*3]下面用法是错误的:Inta[5],b[5];a=b;//错误3、存储顺序数组元素在内存中顺次存放,它们的地
3、址是连续的。例如:具有10个元素的数组a,在内存中的存放次序如下:数组名是数组首元素的内存地址。数组名是一个常量,不能被赋值。a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a4、初始化在声明数组时对数组元素赋以初值。例如inta[10]={0,1,2,3,4,5,6,7,8,9};可以只给一部分元素赋初值,其它自动赋默认值。例如:inta[5]={10,20,30};在对全部数组元素赋初值时,可以不指定数组长度。例如:intarray[]={10,20,30};5、举例用冒泡法对n个数据按升序排序(由小到大)。将n个数据两两进行
4、比较,较大的数向后移动,经过一轮比较后,将最大的数移动到末尾。下一轮再对剩下的n-1个数进行两两比较互换,得到次大数。如此进行多轮两两比较互换,最后得到一个由小到大的有序数组。例如,对4个数据(9,8,7,2)的冒泡排序过程:9888897777922229排序第一轮第二轮第三轮比较次数321结论:对n个数排序,要进行n-1轮,第i轮中要进行n-i次比较#includeusingnamespacestd;voidmain(){constintN=10;inti,j,t,a[N];cout<<"Pleaseinput"<5、for(i=0;i>a[i];//输入数组元素cout<<"Thenumbersare:";for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;//互换}cout<<"Thesortednumbersare:";for(i=0;i6、3.1.2一维数组的声明与引用1、数据类型标识符[常量表达式1][常量表达式2]…;例:inta[5][3];表示a为整型二维数组,其中第一维有5个下标(0~4),第二维有3个下标(0~2),数组的元素个数为15,可以用于存放5行3列的整型数据表格。注意:不能写成:inta[5,3]//错误3、存储顺序按行存放,上例中数组a的存储顺序为:2、二维数组的声明类型说明符数组名[常量表达式][常量表达式]例如:floata[3][4];4、引用例如:b[1][2]=a[2][3]/2下标不要越界5、初始化将所有数据写在一个{}内,按内存存放顺序赋值例如:inta[3][4
7、]={1,2,3,4,5,6,7,8,9,10,11,12};分行给二维数组赋初值例如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};可以对部分元素赋初值例如:inta[3][4]={{1},{0,6},{0,0,11}};对全部元素赋初值时,定义数组时第一维的长度可省略inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};等价于inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};或inta[][4]={{1,2,3,4},{5,6,7,8},{9,10