万水千山总是情,点点关注行不行。
一声朋友一生情,点点关注才能行!
文章目录
1.数组的概念
数组是一组相同类型元素的集合;
- 数组中存放的是1个或者多个数据,但数组元素个数不能为0。
- 数组中元素的类型是相同的
2.一维数组的创建和初始化
2_1 .数组创建
- type name[常量值]
- type指的是数组中存放数据的类型,可以是:char,int,short,float等
- name指的是数组的名字,是自己起的。
- []中的常量值是用来指定数组的大小的,这个数组的大小是按实际需求指定的。
eg:想存储2023级电子4班30个人的高数成绩,我们可以创建数组,如下:
int math[20];
2_2数组的初始化
在数组创建的时候,我们需要给定一些初始值,称为初始化。数组的初始化一般使用{ }
如下:
- //完全初始化
- int arr[5]={1,2,3,4,5};
- //不完全初始化
- int arr[5]={1};//第一个元素初始化为1,剩余元素默认初始化为0
2_3数组类型
数组也有类型,去掉数组名即为数组的类型
eg:
int arr[5]的类型即为int类型
3.一维数组的使用
3_1. 数组下标
与数学不同的是,C语言规定数组是有下标的,且下标是从0开始的
tip:[ ]是C语言中数组访问提供的一个操作符,叫下标引用操作符。
eg:
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",arr[7]);//打印8
printf("%d\n",arr[3]);//打印4
return 0;
}
3_2.数组元素的打印
如果我们想访问整个整个数组的内容,我们就要访问所有下标,可以用到循环结构
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int i= 0 ;
for(i=0;i<10;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
3_3.数组元素的输入
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int i= 0 ;
for(i=0;i<10;i++)
{
scanf("%d\n",&arr[i]);
}
for(i=0;i<10;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
3_4.一维数组在内存中的储存
有了前面的内容,我们使用数组基本没有什么障碍了,如果还想深入了解,我们最好了解一下数组在内存中的储存。咱们给一个打印数组元素地址的代码
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int i= 0 ;
for(i=0;i<10;i++)
{
printf("&arr[%d]=p%\n",i,&arr[i]);
}
return 0;
}
数组在内存中是连续存放的。这就为后期我们使用指针访问数组奠定了基础。
4.二维数组的创建
- type name[常量值1][常量值2];
例如:int arr[5][6]中5表示五行,6表示一行6个元素
4_1.不完全初始化
- int arr1[3][5]={1,3};
- int arr1[3][5]={0};
4_2.完全初始化
int arr3[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7}
tip:
- 数组并非和图一样排的,虽然它叫二维数组,但在内存中,他是连续的,也就是说,图中0行4列的下一个元素就是1行0列。
- _在进行初始化时,可以省略行,但是不可以省略列,例如:int arr4[ ][5]={1,2,3}
4_3.二维数组的使用
这里类似于一维数组,找下标,不过需要行号和列号共同定位
#include<stdio.h>
int main()
{
int arr[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};
int i= 0 ;
for(i=0;i<10;i++)
{
int j = 0;
for(j=0;j<5;j++)
{
scanf("%d\n",&arr[i][j]);
}
}
for(i=0;i<10;i++)
{
int j = 0;
for(j=0;j<5;j++)
{
printf("%d\n",arr[i][j]);
}
printf("\n");
}
return 0;
}
(如有错误,麻烦各位大佬评论区指正,感谢!)