C++ 一维数组及二维数组的特征和用法

1. 特征

  1. 数组内存放数据类型相同
  2. 数组内存位置连续
  3. 存储的单个数据大小为4字节

2. 一维数组

2.1 初始化

  1. 自定义数据初始化
数据类型 数组名[长度]={
    
    12345...};
  1. 一次性全初始化为0
数据类型 数组名[长度]={
    
    0};
数据类型 数组名[长度]={
    
    };

2.2 数组名用处

注:数组名地址与数组第一个元素地址一致
  1. 获取整个数组大小
sizeof(arr);
  1. 获取数组长度
int len=sizeof(arr)/sizeof(arr[0]);//数组大小/数组单个元素大小=数组长度

3. 二维数组

3.1 初始化

数据类型 数组名[行数n][列数m]={
    
    {
    
    a1,a2,a3...am},{
    
    b1,b2,b3...bm},...};
数据类型 数组名[行数n][列数m]={
    
    a1,a2,a3...am*n};
数据类型 数组名[][列数m]={
    
    a1,a2,a3...am*n};
注:必须有列数,行数可以不用

3.2 数组名用处

注:数组名地址与数组第一个元素地址一致,用处与一维数组类似

3.3 二维数组做函参

  1. 调用函数中的数组参数必须指定列数,行数可有也可无,两者等价
void func(int arr[2][2]);
//等价于
void func(int arr[][2]);
  1. 实参数组维数可以大于形参数组维数,此时函数只取得参数中有的范围
int arr[4][2];
void func(int arr[2][2]);

3.3.1 编译器寻址方式

int arr[m][n];

编译器取arr[i][j]的值,寻址地址:arr+i*n+j

   注:这也可以看出为何不能不写二维数组中第一维的数,否则将无法寻址

猜你喜欢

转载自blog.csdn.net/DonquixoteXXXXX/article/details/114293825