定义方法:
类型 变量名[元素个数];
比如:
int a[6];
char b[24];
double c[3];
注意,c语言中数组的元素个数是不能动态定义的(修改:在c99中已经可以了)
也就是说,下面的代码是错误的:
#include <>
#include <>
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 <>
#include <>
int main()
{
int a[6];
for(int i=0;i<6;i++)
{
a[i]=i;
}
for(int j=0; j<6;j++)
{
printf("%d\n",a[j]);
}
return 0;
}
把数组和输入的值结合起来,把数组的复制和输入放到循环里面:
如下,计算六个数的平均值,记得转化为浮点型,因为平均值
#include <>
#include <>
#define NUM 6
int 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("%d\n",sum);
printf("%.2f\n",(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计算法会计算数组总的占的位数。