目录

定义数组

数组的集成初始化

二维数组

 二维数组的定义

 二维数组的初始化

遍历数组


定义数组

<类型>变量名称[元素数量];

元素数量必须是整数。数组的每个单元就是数组类型的一个变量。

数组的大小就是所有元素大小之和

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

数组的例子:统计个数

#include<stdio.h>

int main()
{
   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]);
    }                         //遍历数组输出
}

注:数组创建,[]中要给一个常量才可以,不能使用变量。可以直接用常量,或使用宏定义。 

数组的集成初始化

数组的初始化是指再创建数组的同时给数组的内容一些合理初始值。

int  a[]={数字;数字;数字;数字;……};

直接用大括号给出数组的所有元素的初始值,不给出数组大小,编译器替你数数。

sizeof给出整个数组所占据的内容的大小,单位是字节 。sizeof(a[0])/sizeof(a)给出数组中单个元素的大小,于是相除就得到了数组的单元个数。这样的代码,一旦修改数组中初始的数据,就不需要修改遍历的代码。

二维数组

 二维数组的定义

<类型>变量名称[n][m];       //n,m为数字

通常理解为a是一个n行m列的矩阵 

变量名称[i][j]       表示第i行第j列上的单元

 二维数组的初始化

int a[元素数量][元素数量]={
               {数字;数字;数字;……},
               {数字;数字;数字;……},
};
  •  列数是必须给出的,行数可以由编译器来数
  • 每行一个{},逗号分隔

遍历数组

for (i=0;i<length;i++){
     b[i]=a[i];
}
for(i=0;i<number;i++){
    count[i]=0;
}
for(i=0;i<length;i++){
    if(a[i]==key){
        ret=i;
        break;
     }
}
for(i=0;i<cnt;i++){
    if(number[i]>average){
        printf("%d",number[i]);
     }
}
for(i=0;i<number;i++){
    printf("%d:%d\n",i,count[i]);
}

通常都是使用for循环,让循环变量i从0到<数组的长度,这样循环体内最大的i正好是数组最大的有效下标。