前言:
让我看看大家的c语言都学的怎么样了,一维数组会了没
1. 数组的概念
数组是⼀组相同类型元素的集合;
数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
数组中存放的多个数据,类型是相同的。
2. ⼀维数组的创建
类型 变量名称[元素个数];
⽐如:我们现在想存储某个班级的20⼈的数学成绩,那我们就可以创建⼀个数组,如下:
int math[20]就是在一个名为math的数组中存入了20个变量类型为int的元素;
3.一维数组的初始化
有时候,数组在创建的时候,我们需要给定⼀些初始值,这种就称为初始化的。
那数组如何初始化呢?数组的初始化⼀般使⽤⼤括号,将数据放在⼤括号中。
例如,我们储存某个小组的数学成绩,可以创建一下数组
int math[5]={88,76,89,90,84};
这种每一个元素对应每一个值的叫做完全初始化;
那接下来就讲解不完全初始化:
int math[20]={88,86,95,12};
在这个代码中我们指定数组math20个元素,但是我们只给前四个赋值了,那么其他16个元素默认为0,这就叫做数组的不完全初始化。
接下来我们来看一个错误的初始化:
int math[5]={10,20,30,40,50,60}
我们指定数组math5个元素,但是我们一共给出了6个值放在数组math中,这种初始项大于所设定元素个数的情况叫做错误的初始化,所以要记住,初始项要小于等于所设定的元素个数。
4.数组的类型
数组也是有类型的,数组算是⼀种⾃定义类型,去掉数组名留下的就是数组的类型。
例如
int math[20]//类型为 int [20];
int math[10]//类型为 int [10];
char name[10]//类型为 char [10];
5.数组的使用
学习数组使用之前我们要了解数组的下标索引
5.1数组下标索引
语⾔规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下 标就相当于数组元素的编号,例如:
int math[10]={1,2,3,4,5,6,7,8,9,10};
那么math[0]=1;
math[1]=2;
math[9]=10;
5.2数组元素的打印
只要我们产⽣数组所有元素的下标就可以了,那我们使⽤for循环产⽣0~9的下标,接下来使⽤下标访 问就可以了。例如:
#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 ", arr[i]);
}
return 0;
}
输出结果为:
5.3数组的输入
明白了数组的输出,那么我们可以用scanf进行数组的输入啦
例如:输入10次数字
#include <stdio.h>
int main()
{
int arr[10] = {0};
int i = 0;
for(i=0; i<10; i++)
{
scanf("%d", &arr[i]);
}
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
5.4计算数组元素个数
在遍历数组的时候,我们经常想知道数组的元素个数,那C语言中有办法使⽤程序计算数组元素个数吗?
当然可以,我们使用关键字sizeof。
sizeof是c语言的关键字,用来计算类型或者变量的大小。
比如int类型的大小为4个字节,char类型大小为1个字节
#include <stdio.h>
int main()
{
int a=0;
char b=0;
int sz1=sizeof(a);
int sz2=sizeof(a);
printf("%d\n",sz1);//输出结果为4
printf("%d\n",sz2);//输出结果为1
return 0;
}
我们知道数组arr[10]的大小为10倍arr[0],
数组arr[20]的大小为20倍arr[0],
那么任意arr[ ]的大小可以用除法关系来求
int sz=sizeof(arr)/sizeof(arr[0]);
变量sz即为数组arr的个数。
你学会了吗?来作一道题检验一下吧!
题目链接:
https://www.nowcoder.com/practice/bb66c27cb7aa48f9ba7d9f88e4068285?tpId=107&&tqId=33373&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking