任何数组的数组名代表数组首元素地址
知识点一:
一维数组
1、数组的概述
![一维数组](https://img-blog.csdnimg.cn/img_convert/c23c35ff54b842afb636c6c1f4ce7e37.png)
2、一维数组的定义
格式:数据类型 数组名[数组元素个数]
需求:请定义一个数组,该数组有10个元素每个元素为int 例:int arr[10];
注意(int arr[10]):
1)数组名arr不能和其他变量名同名
2)数组的元素小标是从0开始: 0~9
3)数组的元素分别是: arr[0]、 arr[1] ~ arr[9],如果访问arr[10]数组越界
4)数组的元素等价于普通变量
5)在定义数组的时候,[]里面的值不能是变量(C89标准)
3、数组的遍历
#include<stdio.h>
void test7()
{
//局部变量,如果不初始化内容不确定
int arr[10];
int i = 0;
//遍历数组
for(i = 0;i<10;i++)
{
printf("%d",arr[i]); //输出的都是不确定的值
}
printf("\n");
}
4、数组初始化
初始化:定义的时候给变量或数组元素赋值的动作叫初始化
(1)全部初始化:
int arr[5] = {10, 20,30, 40, 50};
//如果是全部初始化数组 元素的个数 可以省略 实际的元素个数 由初始化个数决定
int arr[] = {10,20,30, 40,50}; //少用
(2)部分初始化:
//部分初始化 未被初始化 部分自动补0
int arr[5] = {10,20, 30};
//初始化数组 常见的操作 (将数组的所有元素清零)
int arr[5] = {0}; //只初始化arr[0]=0,未被初始化部分 自动补0,则全部都为0
(3)扩展:初始化
int arr[5]={[2]=3,[4]=7};//0 030 7
//[2]=3将数组的第2个元素,初始化为3
//[4]=7将数组的第4个元素,初始化为7
5、数组的空间大小:
1)arr数组名作为数组类型时,代表的是数组空间的总大小
2)数组的总大小 = 元素的个数 * 每个元素的大小
3)数组:元素的大小 arr[0]是数组的第0个元素
4)数组元素的个数
= 数组总大小 / 每个元素的大小
#include<stdio.h>
void test1()
{
//arr数组名作为数组类型代表的是数组空间的总大小
int arr [5] = {10,20,30,40,50};
int n = 0;
//数组的总大小=元素的个数*每个元素的大小
printf("数组的总大小:%d\n",sizeof(arr)); //数组的总大小20
//数组:元素的大小 arr[0] 是数组的第0个元素
printf("数组元素的大小=%d\n",sizeof(arr[0])); //数组元素大小=4
//数组元素的个数 = 数组总大小/每个元素的大小
n = sizeof(arr)/sizeof(arr[0]);
printf("数组元素的个数=%d\n",n); //数组元素的个数=5
}
int main(int argc,char *argv[])
{
test1();
return 0;
}
6、数组元素的操作
数组的元素等价于普通变量
//num++;
arr [1]++; //arr[1] = arr[1]+1;
//scanf("%d",&num)
scanf("%d",&arr[2]);
7、键盘获取一维数组
int arr [5] = {0};
int i = 0;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
知识点二:
二维数组
1、二维数组的定义
格式:数据类型 数组名[行的个数][列的个数]
![二维数组](https://img-blog.csdnimg.cn/img_convert/5238a5989737c46b881fa27638b5d60c.png)
int arr [3][4]
![二维数组地址分析](https://img-blog.csdnimg.cn/img_convert/59bf1fae5a565306ac74e6a7a052effe.png)
2、二维数组的遍历
int i=0;
int j = 0;
//遍历第i列
for(i=0;i<3;i++)
{
//遍历第j行
for(j = 0;j<4; j++)
{
printf("%d ",arr[i][j] )
}
}
3、二维数组初始化
不管是数值还是字符的二维数组,在初始化的时候是可以省略行标的,行数由具体初始化元素个数和列数决定出所需要的行数
分段初始化:
用{}里面的{}明确的表示一行
int arr[3][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
连续初始化:
放满一行才能放下一行
int arr[3][4] = {1,2,3,4,5,6,7,8,9, 10,11, 12};
4、键盘获取二维数组
int i,j = 0;
int arr [3][4] = {0};
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&arr[i][j]);
}
}