我是靠谱客的博主 威武画笔,最近开发中收集的这篇文章主要介绍【918C++程序设计】4、 数组4.1 一维数组的定义、初始化和访问4.2 二维数组的定义、初始化和访问4.3 用数组作为函数参数4.4字符串和字符数组4.5 字符串函数,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
4、 数组
- 4.1 一维数组的定义、初始化和访问
- 定义一维数组
- 一维数组的初始化
- 引用一维数组的元素
- 4.2 二维数组的定义、初始化和访问
- 定义二维数组
- 二维数组的初始化
- 引用二维数组的元素
- 4.3 用数组作为函数参数
- 4.4字符串和字符数组
- 定义和初始化字符数组
- 字符串和字符串结束标志
- 字符数组的输入输出
- 4.5 字符串函数
- 字符串连接函数strcat
- 字符串赋值函数strcpy
- 字符串比较函数strcmp
- 字符串长度函数strlen
4.1 一维数组的定义、初始化和访问
定义一维数组
类型名 数组名[常量表达式];
(1)常量表达式的值表示元素的个数,即数组长度,下标从0开始。
(2)常量表达式中不能包含变量,不允许对数组的大小做动态定义。
一维数组的初始化
(1)在定义数组时对全部数组元素赋予初值
int a[3]={1,2,3};
(2)可以只给一部分元素赋值
int a[5]={1,2,3};//其余默认为0
(3)在对全部数组元素赋初值时,可以不指定数组长度
int a[]={1,2,3}//此时系统自动定义数组长度为3
引用一维数组的元素
数组必须先定义然后使用。只能逐个引用数组元素的值而不能一次引用整个数组中的全部元素的值。
数组名[下标]
4.2 二维数组的定义、初始化和访问
定义二维数组
类型名 数组名[常量表达式][常量表达式];
二维数组中元素排列的顺序是:按行存放
二维数组的初始化
(1)按行给二维数组全部元素赋初值
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)可以将所有数据写在一个花括号内,按数组排列的顺序对全部元素赋初值
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
(3)可以对部分元素赋初值
只对各行的的一个元素赋初值,其余默认为0
int a[3][4]={{1},{5},{9}};
对各行中的某一元素赋初值
int a[3][4]={{1},{0,6},{0,0,11}};
只对某几行元素赋初值
int a[3][4]={{1},{5,6}};
(4)如果对全部元素都赋初值,则定义数组对第1维的长度可以不指定,但第2维的长度不能省。
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
引用二维数组的元素
数组名[下标][下标]
注意,定义a[3][4]时,下标值最大a[2][3]。
4.3 用数组作为函数参数
数组名也可以作实参和形参,传递的是数组的起始地址。
1、用数组元素作函数实参
将数组元素的值传送给形参变量
int max(int x,int a){}
int main(){
int a[2][3]={.....};
max(a[0][2],a[1][2]);
}
2、用数组名作函数参数
void select(int array[],int n){}
int main(){
int a[10]={.....};
select(a,10);
}
(1)如果函数实参是数组名,形参也应为数组名(或指针变量)
(2)数组名代表数组首元素的地址,并不代表数组中的全部元素
(3)用数组名作函数实参时,如果改变了形参数组元素的值将同时改变实参数组元素值
4.4字符串和字符数组
定义和初始化字符数组
char c[5]={'a','b','c','d'};//最后一个默认为空字符'