C语言 百分网手机站

C语言数组教程

时间:2020-11-10 18:33:32 C语言 我要投稿

C语言数组教程

  引导语;数组是将相同数据类型的元素按一定顺序排列的集合,以下是百分网小编分享给大家的C语言数组教程,欢迎阅读!

C语言数组教程

  一、数组的声明

  声明数组的语法为在数组名后加上用方括号括起来的维数说明。本接仅介绍一维数组。下面是一个整型数组的例子:

  int array[10];

  这条语句定义了一个具有10个整型元素的名为array的数组。这些整数在内存中是连续存储的。数组的大小等于每个元素的大小乘上数组元素的个数。方括号中的维数表达式可以包含运算符,但其计算结果必须是一个长整型值。这个数组是一维的。

  下面这些声明是合法的:

  int offset[5+3];

  float count[5*2+3];

  下面是不合法的`:

  int n=10;

  int offset[n]; /*在声明时,变量不能作为数组的维数*/

  二、用下标访问数组元素

  int offset[10];

  表明该数组是一维数组,里面有10个数,它们分别为offset[0],offset[1],……offset[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人员经常在这儿犯一些错误。

  offset[3]=25;

  上面的例子是把25赋值给整型数组offset的第四个元素。

  在赋值的时候,可以使用变量作为数组下标。

  main()

  {

  int i,offset[10];

  for(i=0;i<10;i++) scanf(%d,&offset[i]);

  for(i=9;i>=0;i--) printf(%d ,offset[i]);

  printf(\n);

  }

  题目的意思是先输入10个整数,存入到数组中,然后反序输出。

  三、数组的初始化

  前面说了,变量可以在定义的时候初始化,数组也可以。

  int array[5]={1,2,3,4,5};

  在定义数组时,可以用放在一对大括号中的初始化表对其进行初始化。初始化值的个数可以和数组元素个数一样多。

  如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,其余的元素被初始化为0。

  如果维数表达式为空时,那么将用初始化值的个数来隐式地指定数组元素的个数,如下所式:

  int array[]={1,2,3,4,5};

  这也表明数组array元素个数为5。

  main()

  {

  int i,array[]={1,3,5,7,9,11};

  for(i=0;i<5;i++) printf(%d ,array[i]);

  printf(\n);

  }

  最终结果为1 3 5 7 9

  四、字符数组

  整数和浮点数数组很好理解,在一维数组中,还有一类字符型数组。

  char array[5]={'H','E','L','L','O'};

  对于单个字符,必须要用单引号括起来。又由于字符和整型是等价的,所以上面的字符型数组也可以这样表示:

  char array[5]={72,69,76,76,79}; /*用对应的ASCII码*/

  举一个例子:

  main()

  {

  int i;

  char array[5]={'H','E','L','L','O'};

  for(i=0;i<5;i++) printf(%d ,array[i]);

  printf(\n);

  }

  最终的输出结果为72 69 76 76 79

  但是字符型数组和整型数组也有不同的地方,看下面的:

  char array[]=HELLO;

  如果我们能看到内部的话,实际上编译器是这样处理的:

  char array[]={'H','E','L','L','O','\0'};

  看上面最后一个字符'\0',它是一个字符常量,Turbo C编译器总是给字符型数组的最后自动加上一个\0,这是字符的结束标志。所以虽然HELLO只有5个字符,但存入到数组的个数却是6个。但是,数组的长度仍然是5。

  int i;

  i=strlen(array); /*求字符串的长度,在string.h里面*/

  可以看出i仍然是5,表明最后的'\0'没有算。

  #include string.h

  main()

  {

  int i,j;

  char array[]=094387fdhgkdladhladaskdh;

  j=strlen(array);

  for(i=0;i printf(\n);

  }

  其实我们可以根据判断'\0'来输出字符串,看下面的: