总览
本篇主要讲了 c++ 中的数组基本知识
概述
所谓数组,就是一个集合,里面存放了相同类型的数据元素
特点 1:数组中的元素类型必须都是相同的
特点 2:数组在内存空间上的分配是连续的
一维数组
创建方式
#include <iostream>
using namespace std;
int main() {
//定义方式一:数据类型 数组名[数据长度]
int arr1[10];
//定义方式二:数据类型 数组名[数据长度] = {x1, x2, x3...}
// 如果后续数据小于数据长度,会用 0 来填补
int arr2[3] = {1, 2, 3};
// 定义方式三:数据类型 数组名 = {x1, x2, x3...}
int arr3[] = {4, 5, 6, 7, 8, 9, 10};
return 0;
}
Java 声明数组的两种方式:
指定容量:int[] arr = new int[10];
直接初始化数据:String[] s = {"A", "B", "C"};
其他 API
#include <iostream>
using namespace std;
int main() {
int arr[] = {4, 5, 6, 7, 8, 9, 10};
// 计算数组大小 7
cout << sizeof(arr) / sizeof(arr[0]) << endl;
// 统计数组的首地址 0x16b452ff0
cout << arr << endl;
// 查看某个元素的首地址 0x16fc42ff4 正好比开头多了 4 字节
cout << & arr[1] << endl;
return 0;
}
二维数组
定义方式
#include <iostream>
using namespace std;
int main() {
// 方式一:数据类型 数组名[行数][列数]
int arr1[2][3];
// 方式二:数据类型 数组名[行数][列数] = [[x1,x2..], [y1,y2..]..]
int arr2[2][3] = {{1, 2, 3}, {4, 5, 6}};
// 方式三:数据类型 数组名[行数][列数] = [x1,x2.., y1,y2....]
// 也就是方式二去掉内层括号
int arr3[2][3] = {1, 2, 3, 4, 5, 6};
// 方式四:数据类型 数组名[][列数] = [x1,x2..]
// 只指定列数,根据数据数量自动推断行数
int arr4[][3] = {1, 2, 3, 4, 5, 6};
return 0;
}
其他 API
#include <iostream>
using namespace std;
int main() {
int arr[2][3] = {1, 2, 3, 4, 5, 6};
cout << sizeof(arr) << endl; // 二维数组所占空间大小
cout << sizeof(arr[0]) << endl; // 每一行所占空间大小
cout << sizeof(arr[0]) / sizeof(arr[0][0]) << endl; // 一行有几个元素
cout << sizeof(arr) / sizeof(arr[0][0]) << endl; // 二维数组有几个元素
cout << arr << endl;
cout << &arr[0][0] << endl;
return 0;
}