一维数组
1.概念:
- 表内存里一组连续的同类型存储区
- 可以把多个存储区合并成一个整体。
2.数组声明:
- int arr[10];
- 类型名称int表示数组里所有元素的类型
- 名称arr是数组名称
- 整数10表示数组里有10个存储区,(存储区称为数组里的元素)
- 数组里的元素个数不可以改变
3 初始化
- int arr[3] = {1, 2, 3}
- arr是数组名,代表数组首地址,是常量不可被修改。
- int arr[3]; arr = {1, 2, 3}; //所以这样写就是错的
- 如果初始化数据比元素个数多就忽略后面的初始化数据,反之,把后面的元素初始为0
- 如果一样多就可以省略数组声明里的元素个数。(数组里元素的个数有初始化数据的个数来决定,计算机会为数组提供相应的存储区)
4 数组名称
- 数组名称不可以代表存储区,代表数组里第一个元素的地址。(变量可以代表存储区)
- 对数组名称进行sizeof计算结果是数组里所有元素的总大小。
二维数组
1.概念:
- 可以对数组的元素进行分组的数组叫多维数组,不能分组的叫一维数组。
- 二维数组是最常见的多维数组,它可以对元素进行一次分组。
- 也是表示内存里一组连续的同类型存储区。
2.二维数组声明:
- int arr[3][2]; //两个位置表示组下标和组内下标
- 整数3表示分组个数(表示有3组存储区)
- 整数2表示每个分组里的元素个数(每一组有2个存储区)
- 二维数组名称后如果只有一个下标就可以表示某一组里第一个元素的地址。
- 二维数组名称后如果只有一个下标还可以当做一维数组使用,这个一维数组里包含包含某一组里的所有元素(存储区)。
3.二维数组初始化:
- 可以像初始化一维数组那样初始化二维数组
- int arr[3][2] = {1, 2, 3, 4, 5, 6};
- 可以在初始化二维数组的时候对初始化数据进行分组,分别用一组数据去初始化二维数组中的某一组存储区
- int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
- 如果可以根据初始化数据的个数计算出分组个数就可以省略二维数组声明里的分组个数。
- int arr[][2] = {1, 2, 3, 4, 5, 6};
- int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
4.二维数组名称
- 二维数组名称可以代表第一组里第一个元素的地址
- 对数组名称进行sizeof计算结果是二维数组里所有元素的总大小