欢迎来到天天文库
浏览记录
ID:59457858
大小:132.72 KB
页数:19页
时间:2020-09-15
《第4章--数组和字符串.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数组和字符串到目前为止,我们已经了解C++中所有重要的基本数据类型,以及如何在程序中执行计算和判断。本章将讨论两个比较复杂的数据类型:数组和字符串。数组及其使用方法各种类型的数据多维数据的使用C++字符串与C语符串C++/CLI的数组与字符串4.1数组概述在前面介绍了如何声明和初始化基本类型的变量。每个变量都可以存储特定类型的一个数据项——在整型变量中可以存放整数,在字符变量中可以字符等。而数组可以存储相同类型的多个数据项,如整型数组可以存储多个整数。实际上,数组可以存储任何类型的数据。4.1.1定义数组数组是由多个内存空间组成,每个
2、内存空间都可以存储相同类型的一个数据项,所有的数据项都通过相同的变量名来引用。在C++中定义数组一般形式为:类型名数组名[常量表达式];其中,类型名可以是任一种基本数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。4.1.2引用数组元素为了引用数组中各个数据项,需要使用一个整数标识各个数据项,该整数通常称为数组的索引。数组的索引表示数组元素到数组开始位置的偏移量。第1个数组元素的偏移量是0,因此该元素对应的索引值就是0,第2个数组元素的偏移量是1,它对应的索引值就是1,依次类推。要引用数组中某
3、元素时,可以在数组名后面的方括号中放置该元素对应的索引值。如要将数组a中的第4个元素设置为12,可以使用下面的语句:a[3]=12;数组的内存排列如右图所示。4.1.3初始化在定义数组时如果没有为数组指定初始值,则数组的各个存储单元中会包含一此无用的乱码。在定义数据时可以对其进行初始化,使其包含程序中马上能使用的值。对数组进行初始化时,应该在大括号中提供各个数组元素的初始值。初始化数组时,不能指定比数组元素个数还多的初始化值,但可以指定比数组元素个数少的初始化值。没有提供初始值的数组元素将被初化为0,这与未提供初始化列表的情况不同。4.2多
4、维数据前面介绍的数组都只需要一个索引值来选择元素,这种数组称为一维数组。也可以声明需要两个或更多索引值才能访问元素的数组,这种数组一般称为多维数组。需要两个索引值来引用元素的数组称为二维数组,需要三个索引值的数组称为三维数组,依此类推。4.2.1多维数组的定义在程序中,为了存储这类数据,就需要定义二维数组。二维数组定义的一般形式为:类型说明符数组名[常量表达式1][常量表达式2]例如:inta[3][4];这条语句定义了一个二维数组a,第一个索引值是行号,第二个索引值是行内的编号。对于C++中的二维数组,可以看作是由一维数组的嵌套而构成的。
5、设一维数组的每个元素都又是一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。4.2.2多维数组的初始化为了初始化多维数组,需要扩展原来初始化一维数组的方法。由于二维数组是两个一维数组,这样对二维数组的实始化就变成对两个一维数组进行实始化。根据这种方法,用下面的语句可以定义并实始化二维数组:inta[3][4]={{80,75,92,69},//第一行{61,65,71,75},//第二行{59,63,70,68}//第三行};因为第一行都是一个一维数组,所以每行的初始化值都包含
6、在一对大括号中。这3个初始化列表本身也包含在一对大括号中,因为二维数组是一维数组的一维数组。可以将这个规则扩展到任意维数的数组,每增加一维,就需要添加一对大括号包含初始值。4.3数组的应用排序倒置矩阵4.3.1排序在实际的应用时,经常会需要对数据进行排序。排序的方法有很多种,常见的包括:冒泡排序法和选择排序法。1.冒泡排序法2.选择排序法4.3.2倒置矩阵矩阵常用二维数组来表示。倒置矩阵也就是将一个二维数组的行和列元素互换,存储在另一个二维数据中。在进行矩阵倒置时,只需要注意各元素的行和列的索引值变化:原矩阵中的第1个元素的坐标位置没有发生
7、变化;原矩阵第2个元素的行号和列号为(0,1),倒置后变为(1,0);原矩阵第3个元素的行号和列号为(0,2),倒置后变为(2,0),…..。4.4字符数组和字符串char类型的数组可以用于存储非空(C语言标准)的字符串。在C++中,还定义了string类型,该类型比C语言标准的字符串更易于使用。4.4.1字符数组char类型的数组有两个含义:它可以是一个字符数组,每个元素存储一个字符;它也可以表示一个字符串。在后一种情况中,字符串中的每个字符存储在一个数组元素中,字符串的结尾用一个特定的字符' '表示结束。4.4.2string字符串事
8、实上,string类型是一个类定义。由于目前为止还没介绍过类,所以这里可以理解为类是一种新的数据类型,类数据类型与基本数据类型并没有区别。在使有基本数据类型时,需要使用该基本类型
此文档下载收益归作者所有