内容正文:
第6章 数组
第6章 数组
一维数组的定义
一维数组的应用
二维数组
多维数组和字符数组
字符串
综合实例++
2
多维数组和字符数组
三维数组
一维数组的元素类型可以是二维数组,这样的数组称为三维数组。
语句int a[3][4][2];定义了一个三维数组a,它的形态如图所示。
三维数组a有3个int [4][2]型数组元素:a[0]、a[1]、a[2]。
有12个int [2]型数组元素:a[0][0]、a[0][1]、a[0][2]、a[0][3]、a[1][0]、a[1][1]、a[1][2]、a[1][3]、a[2][0]、a[2][1]、a[2][2]、a[2][3]。
有24个int型数组元素:a[0][0][0]、a[0][0][1]、a[0][1][0]、a[0][1][1]、a[0][2][0]、a[0][2][1]、a[0][3][0]、a[0][3][1]、……、a[2][3][0]、a[2][3][1]。
一维数组的元素类型可以是二维数组,这样的数组称为三维数组。
语句int a[3][4][2];定义了一个三维数组a,它的形态如图所示。
三维数组a有3个int [4][2]型数组元素:a[0]、a[1]、a[2]。
有12个int [2]型数组元素:a[0][0]、a[0][1]、a[0][2]、a[0][3]、a[1][0]、a[1][1]、a[1][2]、a[1][3]、a[2][0]、a[2][1]、a[2][2]、a[2][3]。
有24个int型数组元素:a[0][0][0]、a[0][0][1]、a[0][1][0]、a[0][1][1]、a[0][2][0]、a[0][2][1]、a[0][3][0]、a[0][3][1]、……、a[2][3][0]、a[2][3][1]。
4
三维数组的初始化
多维数组的初始化有两种方式,一种是把多维数组看成数组元素仍是数组的一维数组。int a[3][ ]…[ ] = {a[0]的初值, a[1]的初值, a[2]的初值};。
另一种是把多维数组看成多个存储单元单元相邻的普通变量,将初值依次放在一对大括号中即可。int a[3][ ]…[ ] = {0,1,2,3,4,5,…};。
int a[3][4][2] = {{{1,1},{1,2},{1,3},{1,4}}, {2,1,2,2,0,3}, {{3,1},{0},{0},{3,4}}};
int a[3][4][2] = {1,1,1, 2,1, 3,1, 4, 2, 1, 2, 2, 0, 3, 0, 0, 3, 1, 0, 0, 0, 0, 3, 4};。
多维数组的初始化有两种方式,一种是把多维数组看成数组元素仍是数组的一维数组。int a[3][ ]…[ ] = {a[0]的初值, a[1]的初值, a[2]的初值};。
另一种是把多维数组看成多个存储单元单元相邻的普通变量,将数组元素的初值依次放在一对大括号中即可。int a[3][ ]…[ ] = {0,1,2,3,4,5,…};。
第一种方法如:int a[3][4][2] = {{{1,1},{1,2},{1,3},{1,4}}, {2,1,2,2,0,3}, {{3,1},{0},{0},{3,4}}};
宏观上看三维数组a的三个int[4][2]型数组元素分别被初始化为{{1,1},{1,2},{1,3},{1,4}}、{2,1,2,2,0,3}和{{3,1},{0},{0},{3,4}}。
{{1,1},{1,2},{1,3},{1,4}}就是4行2列的矩阵,初始化a[0]正好。用{2,1,2,2,0,3}初始化a[1],是将a[1]看成了8个int型普通变量。
第二种方法如:int a[3][4][2] = {1,1,1,2,1,3,1,4,2,1,2,2,0, 3,0,0,3,1,0, 0,0,0, 3,4};,将三维数组a看成了24个int型普通变量。
5
例6-12 三维数组的初始化。
程序中三维数组a有3个int[4][2]型数组元素,即3个4行2列的矩阵。
初始化后用循环输出了这3个矩阵。
6
多维数组
数组元素的类型仍为数组的一维数组称为多维数组。
虽然C语言中也可以定义四维数组、五维数组等多维数组,但最常用还是二维数组和三维数组。
多维数组在逻辑上对数组元素进行了分组,但数组元素的存储单元相邻。
数组元素的类型仍为数组的一维数组称为多维数组。
虽然C语言中也可以定义四维数组、五维数组等多维数组,但最常用还是二维数组和三维数组。
多维数组在逻辑上对数组元素进行了分组,但数组元素的存储单元相邻。
7
字符型数组
字符型数组就是元素类型为字符型的数组,既有一维字符型数组,又有多维字符型数组。
语句c