c语言中数组的定义与应用

定义方法:

类型  变量名[元素个数];

比如:

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计算法会计算数组总的占的位数。

 

你可能感兴趣的:(c语言学习)