【引子】
有的时候,我们需要一个“集合了许多不同数据的”集合体,比如我们想要登记学生的成绩。如果我们一直创建每个学生的成绩的变量,未免太过于低效了。
数组就是这样一个“集合同类的不同变量”的东西
【数组定义】
C的数组定义很简单干练:
<类型> <名称> [所含元素数量];
int grades[100];
doubke weight[20];
在C99之前:元素数量必须是编译时刻确定的字面量 (不能是变量、程序运行过程中动态产生的数字)
通过下面这些代码,我们就可以完成一个计算平均值的操作:
#include <stdio.h>
int main (){
int x ;
double sum = 0 ;
int cnt ;
printf("请输入数字的数量 :");
scanf("%d",&cnt); //决定数组的容量
if(cnt>0){
int number[cnt]; //定义一个数组,数组的大小是我们在之前的scanf中决定的
printf("下面输入你要平均的数");
scanf("%d",&x);
while (x != -1){
number [cnt] =x;
sum += x ;
cnt++ ;
scanf("%d",&x);
//获取数字,直到符合我们的大小要求
}
}
; return 0 ;
}
Tips:
1.数组中的元素具有相同的数据类型
2.一旦创建,数组不能改变其大小
3.使用数组时在[]中的数字是下标/索引,下标从0开始计数(实质上计算机语言中大部分的首位都是0)
4.!!无论是编译器还是运行环境,都不会去检查下标是否越界,无论你在读还是写(segmentation fault)
5.数组中的元素在内存中是连续依次排列的
6.可以创建长度为0的数组,但是没什么锤子用