c++二维数组
程序员文章站
2022-04-07 14:49:22
...
二维数组
二维数组的声明和初始化
- 声明:数据类型 数组名[行数] [列数];
- 初始化:顺序初始化 int array1[3] [2]={1,2,5,6,7,8}; 行初始化 int array[3][2]={{5,6},{7 },{8}};
- 顺序初始化:从做到右,然后从上到下 。行初始化:用大括号括出来,有的行内有没初始化的元素 ,直接跳过,然后进行下一行初始化。
- 省略:一维数组大小可以省略,但是二维数组有两个参数,规定只有行可以省略,int array[][3]={1,3,5,6,7,8}就是两行三列。
- 向函数传递二维数组:一维数组 是传递 首元素的地址,二维也一样 ,但是注意:1计算机得知道数组大小,防止 越界访问 1、得让计算机知道列数
# include<iostream>
# include<iomanip>
void disp(int a1[][3],int r,int c);
using namespace std;
int main()
{
int array[][3]={1,2,3,4,5,6};
cout<<"此数组结构如下"<<endl;
disp( array,2,3);
return 0;
}
void disp(int a1[][3],int r,int c)
{
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<setw(2)<<a1[i][j];
}
cout<<endl;
}
}
- 二维数组转化为一维数组: 格式:a[x][y]=b[x*列数+y]
#include <iostream>
using namespace std;
int main()
{
int a[10][10] = {0};
int b[10*10] = {0};
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
b[i*10+j] = a[i][j];
}
}
return 0;
}