一.一维数组的创建
1.数组的基本形式
2.变长数组
- C99中引入了变长数组的概念
- 变长数组支持数组的大小使用变量来指定,但是变长数组不能初始化
- 变长数组不是数组的长度可以变化
例:
1. int n=0; 2. scanf("%d",&n); 3. int arr[n];支持C99标准的编译器环境下能编译
3.数组的初始化
数组可以不给定范围,但是一定要初始化!
初始化分为完全初始化,不完全初始化(除了初始化的元素,其余默认为0)
int arr1[2]={1,1};完全初始化 int arr2[10]={1}不完全初始化,第一个元素初始化为1,其余剩下都为0
二.数组的本质
- 数组的本质是一类相同元素的集合
例:
区别:
三.一维数组的使用
1.访问数组成员
- 数组是使用下标(下标引用操作符)来访问的,下标从0开始
- 数组的下标总是比个数小一位
例:
2.计算数组的大小
四.一维数组在内存中的存储
- 一维数组在内存中的存储是连续存放的
- 随着数组下标的增长,地址也是从低到高变化的
- 每一个内存单元大小就是一个字节(byte),即(int占4个内存单元)
图示:
五.二维数组
1.二维数组的形式
2.二维数组的初始化规则
- 放满一行,再来一行,其余初始化为0
- { } 决定换行
int arr[3][4]={{1,2},{4,5}};
- 二维数组,行有几个可以不知道,列有几个必须知道
六.二维数组的使用
- 二维数组的使用也是通过下标的方式
图示:
1.打印二维数组
七、二维数组在内存中的存储
- 二维数组在内存中的储存也是连续存放的
- 随着数组下标的增长,地址也是从低到高变化的
PS:引申用法:当把每行当作一维数组时,数组名可视作行名
图示: