数组

数组概念:把具有相同类型的若干变量按有序形式组织起来。

数值数组

  • 一维数值数组:

    short a[10];  int a[10];  long int a[10];

    float a[10];  double a[10];

    • 一维数组的定义:类型符 数组名 [常量表达式];

     1.数组名的定义符合标识符的书写规范,由数字、字母,下划线组成,第一个字符必须是字母或下划线。

     2.数组名不能与其它变量名相同。

     3.方括号中常量表达式表示数组元素的个数,其下标从0开始。

        如:int a [3];  //表示数组a有三个元素,分别为a[0],a[1],a[2]。

     4.不能再方括号中用变量来表示元素的个数。

        如:int n = 5;

          int a[n];  

    • 一维数组的初始化:在定义数组的同时进行赋值,称为初始化。

     1.定义数组时可以逐个列出数组的值。

        如:int a [5] = {1,2,3,4,5};

     2.给全部元素赋值时可以不给出数组元素的个数,省略下标值。

        如:int a [5] = {1,2,3,4,5};  可写为  int a [] = {1,2,3,4,5};

     3.可以只给部分元素赋初值。

        如:int a [10] = {1,2,3,4,5};  //只给a[0]~a[4]5个元素赋值,后5个元素自动赋值为0

     4.全局数组若不初始化,编译器将其初始化为0;局部数组若不初始化,内容为随机数。

  • 二维数值数组:

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

    int a[2][3] = {{80,76,92},{64,59,100}};

   float a[2][3] = {

           {80.5,98.5,60.5},

           {67.5,81.5,72.5}

         };

     • 二维数组的定义:类型说明符 数组名 [常量表达式][常量表达式];

     1.命名规则同一维数组。

     2.int a[2][3];  //定义了一个两行三列的二维数组,数组名为a,其元素类型为整型,元素个数为2X3=6个。分别为:

        a[0][0] a[0][1] a[0][2]

        a[1][0] a[1][1] a[1][2]

     3.二维数组有两个下标,标识它在数组中的位置。

     4.二维数组实际的硬件存储器是连续编址的,在内存中,各元素是连续存放的,即放完一行之后顺序放入第二行。

    • 二维数组的初始化:在定义数组的同时进行赋值,称为初始化。

     1.定义数组时可以逐个列出数组的值。

        按行分段赋值可写为:

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

        按行连续赋值可写为:

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

     2.可以只给部分元素赋初值,未初始化则为0。

        如:int a [2][3] = {{1,2},{3}};  //只给a[0][0]、a[0][1]、a[1][0]元素赋值,其它元素自动赋值为0

     3.全局数组若不初始化,编译器将其初始化为0;局部数组若不初始化,内容为随机数。

     4.给全部数组元素赋初值时,定义数组时对第一维的长度即行下标可以省略不指定,但第二维的长度即列下标不能省。

        如:int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};  等价于  a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

        在定义时也可只对部分元素赋初值而省略行下标,但应分行赋初值。

          例如:int a[][4] = {{0,0,3},{ },{2,10}};

字符数组 

  • 字符数组的定义

   char str = {'c','','p','r','o','g','r','a','m'}; 

   char str = "c program";

   char a[][5] = {

          {'h','e','l','l','o'},

          {'w','o','r','l','d'}

         };

   char a[][6] = {"hello","world"};

  • 字符数组的引用

   1.用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志符'\0','\0'是由C编译系统自动加上的。

      比如:char str = "c program";在内从中的实际存放为:'c' ' ' 'p' 'r' 'g' 'r' 'a' 'm' '\0'

    2.字符数组的输入输出函数

      字符串输入函数:gets();

      字符串输出函数:puts();

      gets()与scanf()的区别:gets()允许输入的字符串含有空格,scanf()不允许含有空格。

posted @ 2017-11-23 10:25  lemongirl  阅读(204)  评论(0编辑  收藏  举报