二维数组的四种定义方式
arr [行] [列]
#include <iostream>
using namespace std;
int main()
{
//二维数组定义方式:
//2行3列
//第一种
int arr[2][3];
//第二种【最好的是这种】
int arr1[2][3] =
{
{2,3,4},
{4,5,7},
};
//第三种
int arr2[2][3] = { 2,3,4,5,6,7 };
//第四种
int arr3[][3] = { 2,4,5,6,8,6 };
return 0;
}
二维数组名称用途:
①内存空间的大小
②首地址
首地址一般是以十六进制,转化为十进制
cout << arr << endl; //十六进制
cout << (int)arr << endl; //十进制
具体元素的地址访问需要加 & (取址符)
cout << (int)&arr[0][0] << endl;
cout << sizeof(arr) / sizeof(arr[0]) << endl;//行数
cout << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;//列数
#include <iostream>
using namespace std;
int main()
{
//二维数组名称用途
//①内存空间的大小 ②首地址
int arr[2][3];
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;//列数
//首地址一般是以十六进制,转化为十进制
cout << arr << endl;
cout << (int)arr << endl;//首地址的地址
//具体元素的地址访问需要加 & (取址符)
cout << (int)&arr[0][0] << endl;
return 0;
}
二维数组例子:
Andy,Mike,Tom 三人各科的总成绩
#include <iostream>
#include <string>
using namespace std;
//三人各科的总成绩
int main()
{
//定义三人的各科成绩
int score[3][3] =
{
//每个人的语文,数学,英语成绩单独于一个大括号里面
{68,79,90},
{89, 68, 100},
{90,91,95}
};
//定义三人的名字
string name[3] = { "Andy","Mike","Tom" };
//
for (int i = 0; i < 3; i++)
{
int sum = 0;//每次内部循环的时候初始化sum值
for (int j = 0; j < 3; j++)
{
sum += score[i][j];//三次成绩相加
}
cout << name[i] << "的三科总成绩为:" << sum << endl;
}
return 0;
}