qkhhxkj 风的距离

导航

数组

1 一维数组

1.1 一维数组的定义

类型说明符 数组名[常量表达式]

如:int a[20];

表示数组名为a,此数组有10个元素。

(1)数组名定名规则与变量名相同

(2)数组名后是用方括号括起来的常量表达式,不能用圆括弧

(3)常量表达式表示元素的个数,即数组长度,如a[10],10表示a数组有10个元素下标从0开始最后一个元素下载为9

(4)常量表达式中可以包括常量和符号常量,不能包含变量

1.2 一维数组元素的引用

数组必须先定义后使用,C语言规定只能逐个引用数组元素,不能一次引用整个数组。

如:数组名[下标]

还可以下面这样

a[0] = a[5] + a[7] + a[3 * 2]

1.3 一维数组的初始化

(1)在定义数组时对数组元素赋以初值

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

(2)也可以只给一部分元素赋值

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

定义a数组有10个元素,但花括号内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素的值为0。

(3)如果想使一个数组中的全部元素值为0可以写成

如:int a[10] = {0,0,0,0,0,0,0,0,0,0};

不能写成 int a[10] = {0 * 10};

(4)在对全部数组元素赋初值时,可以不指定数组长度

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

可以写成

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

在第二种写法花括弧中有5个数,系统就会据此自动定义a数组的长度为5,但若被定义的数组长度与提供初值的个数不相同,则数组长度不能省略。

2 二维数组

2.1 二维数组的定义

类型说明符 数组名[常量表达式][常量表达式];

如:int a[3][4], b[5][10];

2.2 二维数组的引用

数组名[下标][下标]

b[1][2] = a[2][3] / 2;

2.3 二维数组的初始化

(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}};

它的作用是只对各行的第1列的元素赋值,其余元素自动为0,赋初值后数组各元素为

1 0 0 0

5 0 0 0

9 0 0 0

也可以

int a[3][4] = {{1},{0,6},{0,0,11}};

赋初值后

1 0 0 0

0 6 0 0

0 0 11 0

还有

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

1 0 0 0

5 6 0 0

0 0 0 0

int a[3][4] = {{1},{},{9}};

1 0 0 0

0 0 0 0

9 0 0 0

(4)如果对全部元素都赋初值则定义数组时,对第一维的彻底可以不指定,但第二维的长度不能省。

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

与下面的定义等价

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

系统会根据数据总个数分配存储空间,一共12个数据,第行4列,当然可以确定3行,在定义时也可以只对部分元素赋初值而省略第一维的彻底,但应分行赋初值。

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

0 0 3 0

0 0 0 0

0 10 0 0

posted on 2011-06-24 18:27  qkhhxkj  阅读(513)  评论(0编辑  收藏  举报