数组
1. 数组是一组有序数据的集合(顺序储存在内存中,通过下标进行访问)
2. 通过数组名和数组下标可以唯一的确定一个元素
3. 数组中每一个元素都属于同一数据类型
ps:数组结合循环,可以批量处理大量数据
一、一维数组
一维数组的创建和初始化
1. 一维数组的创建
定义一维数组的一般形式为:类型符 数组名[常量表达式];
eg: int arr1[10];
char arr2[4];
float arr3[2];
double arr4[3];
注:数组创建时,[ ]中必须是常量,不能使用变量
2. 一维数组的初始化
在定义数组的同时,给个数组元素赋值,这称为数组的初始化
int a[10]={0,1,2,3,4,5,6,7,8,9};
int a[10]={0,1,2,3,4};
int a[10]={0};
int a[]={1,2,3,4,5};
数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。。比如:上边的第四个初始化,a数组的大小为 4。
对于下面代码要区分在内存中如何分配
一维数组的使用
解引用操作符[ ] ,它其实就数组访问的操作符。
引用数组元素的表示形式为:数组名[下标]
PS:数组下标从 0 开始,注意数据下标的结束位置,防止数组越界
一维数组的存储
看下列代码:
输出结果:
由输出结果我们可以看出,随着数组下标的递增,数组元素的地址也在递增
由此可以得出结论:数组在内存中是连续存放的
一维数组的指针访问
上面我们知道了数组在内存中的存储方式。那我们尝试使用指针的形式访问数组
我们看代码:
运行结果:
观察结果我们发现,通过对数组名+整数的运算,其实可以获取到数组每个元素的地址,这样我们就可以使用指针访问我们的数组了
二、二维数组
二维数组的创建和初始化
1. 二维数组的创建
类型符 数组名[常量表达式][常量表达式];
如:float a[3][4],b[5][10];
注意:二维数组不能写成 a[3,4]
2. 二维数组的初始化
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[3][4]={{1},{5},{9}};
int a[3][4]={{1,0,0,0},{5,0,0,0},{9,0,0,0}};
int a[3][4]={{1},{5,6}};
int a[3][4]={{1},{5,6},{0}};
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[][4]={{0,0,3},{ },{0,10}};
int a[3][] = {1,2,3,4,5,6,7,8,9};
二维数组的使用
二维数组元素的表示形式为:数组名[下标][下标]
PS:行列下标从0开始
二维数组的存储
像一维数组一样打印出每个元素的地址
代码:
运行结果:
通过结果我们分析其实二维数组在内存中也是连续存储的
二维数组的指针访问
运行结果:
由此,我们可以发现,二维数组也可以通过指针进行访问。