(一)数组的概念
我们可以将一个或多个元素存放在一个地方,我们就称之为数组,数组里存放的元素必须是同一类型的,数组又分为一维数组或多维数组。
(二)数组的初始化
和之前创建变量一样,数组的使用也必须先初始化,而数组的初始化又分为完全,不完全和错误的初始化,数组的初始化如下
int arr[5]={1,2,3,4,5};//完全初始化 int arr[5]={1,2,3};//不完全初始化 int arr[5]={1,2,3,4,5,6};//错误初始化只不过数组的类型和之前变量的类型稍有不同,比如int a=0;那么变量a的类型就是整型,也就是int,但数组不同,比如下方数组的类型就是int[10]
int arr[10]={1,2,3,4,5,6,7,8,9,10};数组的名字不是固定的,是根据你想要的效果来起的,比如你想要在这个数组里存放100个学生的成绩,为了方便理解,可以给数组起如下名字
int grade[100]={0};数组的名字可以由字母,数字,下划线共同组成,如下 但是要注意⚠️:数字不能放在首位
int student_grade[10]={0};(三)数组的下标,及输入,输出
每个存放在数组中的元素都有对应的下标,方便我们查找相应的元素。下标是从0开始的,然后是1,2…依次往后递增。那么怎么使用下标查找对应的元素呢,在c语言中我们就可以使用下标引用操作符[],比如给定一个数组,我们想要在屏幕上打印2,那么可以进行如下操作
#include <stdio.h> int main() { int arr[5]={1,2,3,4,5}; printf("%d",arr[1]); return 0; }既然每个元素都有下标,再结合我们之前学过的循环,那么我们就可以把数组的每个元素都打印出来了,如下图
#include <stdio.h> int main() { int i=0; int arr[10}={1,2,3,4,5,6,7,8,9,10}; for(i=0;i<=9;i++) { printf("%d",arr[i]); } return 0; }我们也可以自己根据需求自己给数组输入想要的值,如下
#include <stdio.h> int main() { int i=0; for(i=0;i<=9;i++) { scanf("%d",&arr[i]); } for(i=0;i<=9;i++0) { printf("%d",arr[i]); } return 0; }(四)计算数组元素个数
对于一个数组,我们可以用之前学到的sizeof来计算它的元素个数,如下
int arr[10]={0}; int sz = sizeof(arr)/sizeof(arr[0]);//sz是arr元素个数然后我们也可以用sizeof来计算单个数组的大小,如下图
int arr[10]={0}; printf("%d\n",sizeof(arr[0]));//计算单个元素的大小这样两个结果相乘就是整个数组的大小了 当然也可以用它直接来计算数组的大小,如下图
int arr[10]={0}; printf("%d",sizeof(arr));可得两次结果相同,当我们学会总sizeof来计算数组元素的个数时,以后在写代码时数组元素个数的地方就不用固定写死了,可以使用以上方法来计算
(五)二维数组的创建及初始化
把一维数组作为数组的元素就是二维数组。 二维数组的定义如下 二维数组的使用当然也要初始化,分为完全和不完全初始化,如下图
int arr[2][3]={1,2,3,4,5,6};//完全初始化 int arr[2][3]={1,2,3};不完全初始化 [2]表示2行 [3]表示3列注意⚠️:二维数组在初始化时可以省略行,但不可以省略列,如下图
int arr[][3]={1,2,3};(六)二维数组的下标,及输入和输出
和一维数组一样,二维数组也有对应的下标,每行每列也是从0开始依次递增的,如下图
上方图片方框外面的数字代表行或列的下标,第2行第4列的数字5的行下标为1,列下标为3
比如我们想要查找第2行第4列的数字5,可以这样访问
#include <stdio.h> int main() { int arr[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7}; printf("%d",arr[1][3]); return 0; }我们一样可以用循环知识将二维数组的每个元素都打印出来,如下图
#inclue <stdio.h> int main() { int i=0; int j=0; int arr[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7}; for(i=0;i<3;i++)产生行 { for(j=0;j<5;j++)产生列 { printf("%d",arr[i][j]); } } return 0; }