第2章++补充数组、指针、链表应用讲述.pptx
文本预览下载声明
面向对象程序设计C++
信息工程学院
王莉
第2章 补充
2.1 数组
2.2 指针
2.3 链表应用
1)一维数组的定义
????语法格式为: 数据类型 数组名 [常量表达式] ;
例如:
int ?a[5]; //包含5个元素的整型数组a????
1、一维数组
23
45
67
10
29
0
1
2
3
4
2.1 数组
2)一维数组元素的引用
格式:数组名[下标]
23
45
67
100
29
0
1
2
3
4
a[0]
a[1]
a[2]
a[3]
a[4]
例如:
int ?a[5]; //包含5个元素的整型数组a????
??(3)一维数组的初始化
??在定义数组的同时给数组元素赋初值称为数组的初始化。其语法格式为: ???数据类型 数组名 [常量表达式]={初值表}; 例如:
int?a[10]={1,2,3,4,5,6,7,8,9,10}; //整型数组元素被全部初始化 int?b[10]={1,3,5,7,9}; //初始化了部分数组元素 int?c[ ]={2,4,6,8,10}; //通过对数组元素全部初始化
(4)一维 数组元素输入输出
1) 数组元素的输入
for(j=0; jN; j++)
cina[j];
例如:int a[N]; //N是已定义过的常量
2) 数组元素的输出
for(j=0; jN; j++)
couta[j];
在C++中,使用new可以为一维数组动态分配内存空间,例如:
int *p=new int[10];
一维数组的长度也可以是变量,例如:
int m;
cinm;
int *p=new int[m];
释放new分配的内存空间,格式:delete []p;
(5)动态的一维数组
相当于 int *p, a[10];
p=a;
1)二维数组的定义
????语法格式为: 数据类型 数组名 [常量表达式1] [常量表达式2] ;
例如:
int ?a[3][4]; //定义3行4列的数组a????
2、二维数组
2
4
6
7
4
9
5
1
7
0
2
4
0
1
2
3
0
2
4
6
7
1
4
9
5
1
2
7
0
2
4
a
内存
2
4
6
7
4
9
5
1
7
0
2
4
100
104
108
10C
110
114
118
120
124
128
12C
130
134
138
2)二维数组元素的引用
格式:数组名[行下标][列下标]
5
(3)二维 数组元素输入输出
1) 数组元素的输入
for(i=0; i3; i++)
for(j=0; j4; j++)
cina[i][j];
例如:int a[3][4];
2) 数组元素的输出
for(i=0; i3; i++)
for(j=0; j4; j++)
couta[i][j];
(4)动态的二维数组
思考:在c语言中二维数组的处理
2
4
6
7
4
9
5
1
7
0
2
4
2
4
6
7
4
9
5
1
7
0
2
4
int a[3][4]
在C++中,使用new可以为二维数组动态分配内存空间。
2
4
6
7
4
9
5
1
7
0
2
4
2
4
6
7
4
9
5
1
7
0
2
4
列数固定的二维数组,一般格式为:
TYPE (*p)[N] = new TYPE [ ][N]; //列固定
p是指向包含有N个元素的数组指针。
例如: 指定列数的二维数组应用
(4)动态的二维数组
(2)不指定数组的列数:
2
4
6
7
4
9
5
1
7
0
2
4
2
4
6
7
4
9
5
1
7
0
2
4
p
定义一个二级指针
int **p; p = new int*[3];??
//int*[3] 表示包含3个元素的指针数组
给指针数组初始化for (int i = 0; i3; ++i){
p[i] = new int[4]; //动态分配包含4个元素数组
}
当数组使用
显示全部