定义方法:
类型 变量名[元素个数];
比如:
int a[6];
char b[24];
double c[3];
注意,c语言中数组的元素个数是不能动态定义的(修改:在c99中已经可以了)
也就是说,下面的代码是错误的:
#include <stdio.h>#include <stdlib.h>int main(){ int a[6]; char b[24]; double c[3]; int n; printf("请输入n的值n"); scanf("%d",&n); int r[n];//这样是不行的,因为从语言的数组是不能动态定义的,必须要是一个常量; return 0;}访问数组:用循环的方式访问数组,可以防止数组越界,把计数器的初始值设置为0;
#include <stdio.h>#include <stdlib.h>int main(){ int a[6]; for(int i=0;i<6;i++) { a[i]=i; } for(int j=0; j<6;j++) { printf("%dn",a[j]); } return 0;}把数组和输入的值结合起来,把数组的复制和输入放到循环里面:
如下,计算六个数的平均值,记得转化为浮点型,因为平均值
#include <stdio.h>#include <stdlib.h>#define NUM 6int main(){ int a[NUM]; int sum = 0; for(int i=0;i<6;i++) { printf("请输入第%d位同学",i+1); scanf("%d",&a[i]); sum+=a[i]; } printf("%dn",sum); printf("%.2fn",(double)sum/NUM); return 0;数组的初始化,未赋值的则全部添0;
如果初始化了又完全没有赋值的话,会打印一些乱七八糟的东西。
int a[10] ={0};//把第一个元素赋值为0,也就是后面全都加零;
int a[10] = {1,2,3,14,15,15,13,14,14,13};//直接赋值
int a[10] = {1,2};//后面八个数全都添为0;
如果已经写出了初始化的数组元素的值,那就可以不写长度:编译器会自己计算
int[] = {1,2,1,3,4};
c99的新特性,可以指定一些元素,其他会全部置零;
用sizeof计算法会计算数组总的占的位数。