C语言程序设计(8)

75 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情
数组

数组是一种容器(放东西的东西),特点是:其中所有的元素具有相同的数据类型;一旦创建,不能改变大小;数组中的元素在内存中是连续依次排列的。

例如a[10]:一个int数组;10个单元:a[0],a[1],a[2],...a[9]

image.png

每个单元就是一个int类型的变量;可以出现在赋值在左边或右边:a[2]=a[1]+6;在赋值左边的叫做左值。

数组的单元: 数组的每个单元就是数组类型的一个变量 使用数组时放在[]中的数字叫做下标或索引,下标从零开始计数

有效的下标范围:编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写;一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃;但是也可能运气好,没造成严重的后果;所以这是程序员的责任来保证程序只使用有效的下标值:[0,数组的大小-1]。

长度为零的数组 int a[0];(可以存在,但是无用)

数组例子:统计个数

const int number=10;//数组大小
int x;
int count[number];//定义数组
int i;
for(i=0;i<number;i++){
    count[i]=0;
}//初始化数组
scanf("%d",&x);
while(x!=1){
    if(x>=0&&x<=9){
        count[x]++;//数组参与运算
    }
    scanf("%d",&x);
}
for(i=0;i<number;i++){
    printf("%d:%d\n",i,count[i]);
}//遍历数组输出

结果:

image.png

数组运算

数组的集成初始化:int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};直接用大括号给出数组的所有元素的初始值,不需要给出数组的大小,编译器替你数数。

若出现: int a[5]={2};说明此数组中的元素为2,0,0,0,0。