一.定义数组
<类型>变量名称[元素数量];
(元素数量必须是整数)
如∶int grades [100];
特点∶①其中所有元素具有相同的数据类型
②一但创建,不能改变大小
(数组中的元素在内存中依次排列)
如int a[10];有十个单位∶a[0],a[1]
……a[9]
每个单元就是一个int类型的变量
[]里面从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]); }
其中const int number=10;是数组的大小
int count[number];是定义数组
⑴求数组单元个数
i=sizeof(a)/sizeof(a[0])
⑵数组的赋值
数组变量本身不能被赋值,要把一个数组的所有元素变成另一个数组,必须使用遍历
如:int a[]={ , , , ,}
for(i=0;i<length;i++){ b[i]=a[i]; }
遍历数组常见错误∶
①循环结束条件是<=数组长度
②离开循环后,继续用i的来做数组元素的下标
数组作为函数的参数时(往往必须再用另一个参数来传入数组的大小)∶
①不能在[]中给出数组的大小
②不能再利用sizeof来计算数组的元素个数
三.二维数组
如int [3][5];
a是一个3行5列的矩阵
与一维数组相比,二维数组的遍历则需两重循环
for(i=0;i<3;i++){ for(j=0;j<5;j++){ a[i][j]=i*j; } }
①列数必须给出,行数可以省略
②每行一个{},逗号分隔
③如果省略,表示补零