1、数据类型 数组名[行数][列数];
2、数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
3、数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
4、数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};
注:第二种定义方式更直观,提高代码可读性
#include<iostream>
using namespace std;
int main()
{
//二维数组定义方式
/*
1、数据类型 数组名[行数][列数];
2、数据类型 数组名[行数][列数] = { {数据1,数据2},{数据3,数据4} };
3、数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4 };
4、数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4 };
*/
//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;
//输出方式1
cout << arr[0][0] << endl;
cout << arr[0][1] << endl;
cout << arr[0][2] << endl;
cout << arr[1][0] << endl;
cout << arr[1][1] << endl;
cout << arr[1][2] << endl;
cout << endl;
//输出方式2
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr[i][j] << endl;
}
}
cout << endl;
//2、数据类型 数组名[行数][列数] = { {数据1,数据2},{数据3,数据4} };
int arr2[2][3] = {
{1,2,3},
{4,5,6}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr[i][j] << endl;
}
}
cout << endl;
//3、数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4 };
int arr3[2][3] = { 1,2,3,4,5,6 };
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr[i][j] << endl;
}
}
cout << endl;
//4、数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4 };
int arr4[][3] = { 1,2,3,4,5,6 };
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr[i][j] << endl;
}
}
system("pause");
return 0;
}
运行结果:
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
#include<iostream>
using namespace std;
int main()
{
int arr[2][3] = {
{1,2,3},
{4,5,6}
};
cout << "二维数组占用内存空间为:" << sizeof(arr) << endl;
system("pause");
return 0;
}
?运行结果:
二维数组占用内存空间为:24
#include<iostream>
using namespace std;
int main()
{
int arr[2][3] = {
{1,2,3},
{4,5,6}
};
//1、可以查看占用内存空间大小
cout << "二维数组占用内存空间为:" << sizeof(arr) << endl;
cout << "二维数组第一行占用内存空间为:" << sizeof(arr[0]) << endl;
cout << "二维数组第一个元素占用内存空间为:" << sizeof(arr[0][0]) << endl;
//统计行数
cout << "二维数组行数为:" << sizeof(arr)/ sizeof(arr[0]) << endl;
cout << "二维数组列数为:" << sizeof(arr[0])/ sizeof(arr[0][0]) << endl;
//2、可以查看二维数组的首地址
cout << "二维数组的第一行首地址为:" << arr << endl;
cout << "二维数组的第一行首地址为:" << (int)arr << endl;
cout << "二维数组中第二行的首地址为:" << (int)arr[1] << endl;
cout << "二维数组中第二行第三个元素的首地址为:" << (int)&arr[1][2] << endl;
system("pause");
return 0;
}
?运行结果:
二维数组占用内存空间为:24
二维数组第一行占用内存空间为:12
二维数组第一个元素占用内存空间为:4
二维数组行数为:2
二维数组列数为:3
二维数组的第一行首地址为:010FFA44
二维数组的第一行首地址为:17824324
二维数组中第二行第三个元素的首地址为:17824344
有三名同学(张三、李四、王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
//1、创建二维数组
int scores[3][3] =
{
{100,100,100},
{90,50,100},
{60,70,80}
};
string names[3] = { "张三","李四","王五" };
//2、统计每个人的总和分数
for (int i = 0; i < 3; i++)
{
int sum = 0; //统计分数总和
for (int j = 0; j < 3; j++)
{
sum += scores[i][j];
cout << scores[i][j] << " ";
}
cout << names[i] << "的总分为:" << sum << endl;
}
system("pause");
return 0;
}
?运行结果:
100 100 100 张三的总分为:300
90 50 100 李四的总分为:240
60 70 80 王五的总分为:210