目录
定义数组
数组的集成初始化
二维数组
二维数组的定义
二维数组的初始化
遍历数组
定义数组
<类型>变量名称[元素数量];
元素数量必须是整数。数组的每个单元就是数组类型的一个变量。
数组的大小就是所有元素大小之和
数组特点:一种放东西的容器,其中所有的元素具有相同的数据类型,一旦创建,不能被改变大小。数组中的元素在内存中是连续依次排列的。
数组的例子:统计个数
#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正好是数组最大的有效下标。