目录
定义
数组是相同类型的对象序列,它们占据一块连续的内存区。
一维数组
声明数组格式:
type arrayName [ arraySize ];
初始化
三种方式
1、数据类型 数组名 [ 数组长度 ];
2、数据类型 数组名 [ 数组长度 ] = {数值1,数值2,数值3……};
3、数据类型 数组名 [ ] = {数值1,数值2,数值3……};
访问数组元素
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。
double salary = balance[9];
实例
//数据类型 数组名 [ 数组长度 ];
int arr[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
cout <<"数组1:"<<endl;
for (int i = 0; i < 3; i++)
{
cout <<"数组1:"<< arr[i]<<endl;
}
//数据类型 数组名[数组长度] = { 数值1,数值2,数值3…… };
int arr2[3] = {1,2,3};
cout <<"数组2:"<<endl;
for (int i = 0; i < 3; i++)
{
cout << arr2[i] << endl;
}
//如果数组长度>大括号内的数值个数时,则未赋值的默认为“0”,小于时报错
int arr21[3] = { 1,2};
cout <<"数组21:"<<endl;
for (int i = 0; i < 3; i++)
{
cout << arr21[i] << endl;
}
//数据类型 数组名[] = { 数值1,数值2,数值3…… };
int arr3[] = { 1,2,3 };
cout <<"数组3:"<<endl;
for (int i = 0; i < 3; i++)
{
cout << "数组3:" << arr3[i] << endl;
}
二维数组
当数组元素具有两个下标时, 该数组称为二维数组。 二维可以看做具有行和列的平面数据结构。
二维数组的形式:
数据类型 数组名[常量表达式1][常量表达式2] ;
数据类型是数组全体元素的数据类型, 数组名用合法的标识符表示, 两个整型常量表达式可以理解为分别代表行数和列数, 与一维数组相同, 数组元素的下标一律从0开始。
初始化
四种方式
1、数据类型 数组名[ 行数 ][ 列数 ];
2、数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2},{数据3,数据4}……};
3、数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4……};
4、数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4……};
访问数组元素
二维数组的数组元素引用与一维数组元素引用类似,区别在于二维数组元素的引用必须给出两个下标。
格式为: <数组名> [下标1] [下标2]
说明:显然,每个下标表达式取值不应超出下标所指定的范围,否则会导致致命的越界错误。
实例
//1、数据类型 数组名[行数][列数];
int arr[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
cout << "数组1:" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;
}
//2、数据类型 数组名[行数][列数] = { {数据1,数据2},{数据3,数据4}…… };
int arr2[2][3] = { {1,2,3},{4,5,6} };
cout << "数组2:" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr2[i][j] << " ";
}
cout << endl;
}
//3、数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4…… };
int arr3[2][3] = { 1,2,3,4,5,6 };
cout << "数组3:" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr3[i][j] << " ";
}
cout << endl;
}
//4、数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4…… };
//编译器可以根据列数,推测出所需行数,但是不能根据行数,推测出所需列数.
int arr4[][3] = { 1,2,3,4,5,6 };
cout << "数组4:" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr4[i][j] << " ";
}
cout << endl;
}
总结
一维数组与二维数组的区别与联系:二维数组的每一行可看为一维数组
C++语言对数组的维数没有限制, 因此你还可以根据一维和2维的规律使用 3 维数组或更高维的数组, 但是在高维数组上的处理比较难理解, 不熟练的情况下容易出错, 因此对于 3 维以上的数组请酌情使用。