5.C语言-数组

2016-12-26  本文已影响0人  后备干部

1. 初始化需要注意的地方:

  1. C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的:
int n;
scanf("%d″,&n);  /*在程序中临时输入数组的大小 */        
int a[n];
  1. float a[0]; /* 数组大小为0没有意义 */
  2. int k, a[k]; /* 不能用变量说明数组大小*/
  3. 数组初始化赋值是指在数组定义时给数组元素赋予初值。数组初始化是在编译阶段进行的。这样将减少运行时间,提高效率。
  4. 可以只给一部分元素赋值。例如:
    int a[10]= {0,1,2,3,4};
    定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。
  5. 如果想使一个数组中全部元素值为0,
    可以写成
    int a[10]={0,0,0,0,0,0,0,0,0,0};

    int a[10]={0};
  6. 如果想使一个数组中全部元素值为0,
    可以写成
    int a[10]={0,0,0,0,0,0,0,0,0,0};

    int a[10]={0};
    注意: int a[10] = {2}; 全部元素为{2, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  7. 在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。
    例如: int a[5]= {1,2,3,4,5};
    也可以写成: int a[ ]= {1,2,3,4,5};

2. 二维数组

2.1 定义

QQ20161227-0.png

2.2 初始化

 我们有4种方法对二维数组初始化:
(1)直接分行给二维数组赋初值(强烈推荐)
    int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
(2)可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值
    int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
(3)可以对部分元素赋初值
    int a[3][4] = {{1}, {5}, {9}};
也可以对各行中的某一元素赋初值
    int a[3][4] = {{1}, {0, 6}, {0, 0, 11}};
其实也可以只对某几行元素赋初值
    int a[3][4] = {{1}, {5, 6}};
(4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省
    int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值
    int a[][4] = {{0, 0, 3}, {}, {0, 10}};
上一篇下一篇

猜你喜欢

热点阅读