第4章 数组、指针与引用
6 a4 X& E: `9 g' Y. {& D4 m
+ N! y) k7 Q& v* b. I P6 } 4.1 数组 ; a7 r2 b5 M/ f2 ]
1一维数组 % A. S4 q; }( ^/ o- M
(1)一维数组的定义 " f/ P) E, Z! e5 ^9 I5 b
一维数组是由具有一个下标的数组元素组成的数组,其定义形式如下: , d. M `% M. E: H
<数据类型><数组名>[<数组长度>]; & P) ?* D9 m! F: U' z8 f7 O( `
在此,<数据类型>是类型说明符,<数组名>是数组的名字,<数组长度>是任一值为正整数的int型常量表达式。<数组长度>用来指定数组中元素的个数,即数组的大小,数组元素的下标是从0到<数组长度>-1。 3 t1 C, Y/ a/ V1 L& m- K! ^$ g3 r
(2)一维数组初始化
5 A: C2 j3 L) v; X7 _. l) k' s 与所有的基本数据类型相同,数组也可以在时初始化。 6 u! F3 i j- T$ @$ Y9 @, B) P8 x" X
当数组声明没有给出数组的大小,但是有初始化列表时,数组的大小就由列表中元素的个数来确定。
1 Q6 b) l; Y! c; F( E6 y! a 在定义数组时,可以不必给出所有数组元素的初始值,即在定义时部分地初始化数组。 : Q, P. R) N% a4 m8 C' `
(3)访问数组元素 6 N7 W; f1 M4 x+ B& l& p S6 s) O
访问数组元素的语法形式是: $ }5 k) A7 S" H# M% l _
<数组名>[<表达式>]
6 T$ ^& m/ K1 C4 t- l& S 在此,<表达式>是非负的int型表达式,称为下标。下标用于指定所要访问的数组中元素的位置。在C+ +中,[]是一个运算符,称为下标运算符。数组下标从0开始,长度为n的数组,其下标的范围是0到n-1。在数组定义以后,给数组赋值时,必须一个元素一个元素的逐个访问。 3 l0 ?$ Q+ I. w% o4 I" v% H2 L
2二维数组
4 y Z& g( s4 G% r1 r6 N% e 以行和列(即二维)形式排列的固定数目元素的集合,并且组成数组的每个元素的类型都相同,即带有两个下标的数组。 & ~+ b; V, i. B. Y
(1)二维数组的定义
1 x- y6 P V; D4 J3 n 定义二维数组的语法是: + ?; w, T5 M- {3 Z! M
<数据类型><数组名>[<表达式1>][<表达式2>]; # w' S# g& h# ?. v6 t
在此<表达式1>和<表达式2>是值为正整数的常量表达式。表达式<表达式1>和<表达式2>,分别用来指定数组中行和列的数目。 : ^% Z1 D( K, [+ y
(2)二维数组初始化 2 B9 S+ r. T+ t% u: U' O0 u
与一维数组相同,二维数组也可以在定义时初始化。 " E/ j, t4 ?! S9 g2 W- H' z
在定义时初始化二维数组要注意: - u6 }5 d- Q0 a, c( [9 R- k6 w2 u
①所有在一行中的元素可以用花括号括起来,并且用逗号分隔; 1 k" k: M9 J* a9 h( j7 u
②对于数字类型数组,如果给定的数值不够,则没有指定数值的元素将初始化为0。此时,至少应有一个值来初始化二维数组。
, u2 e6 w6 j+ C- A7 s. p ③当数组声明时没有给出第一维的大小,但是有初始化列表时,第一维的大小就由列表中子列表的个数来确定。
1 ]* }3 F$ ?7 _% Q$ I4 \' D (3)访问二维数组元素 ) I# P) u/ V; ^
若要访问二维数组的元素,必须要给出两个下标:一个行下标和一个列下标。访问二维数组元素的语法是:
' r" @$ [* L( [ <数组名>[<表达式1>][表达式2];
/ h5 a$ D: x/ W# }3 m 这里<表达式1>和<表达式2>是值为非负整数的表达式。<表达式1>指定行下标,<表达式2>指定列下标。 6 x9 a! R" B1 n) L$ m
(3)多维数组
- o! f' k- N: @8 h L' M) Q 在C+ +中,对数组维数没有限制。下面是对数组的通用定义。
0 S* G9 |5 n I6 ^% t 以n维列表形式排列的固定数目元素的集合,称为n维数组。定义n维数组的语法是: ) i( Y7 \! @! p
<数据类型><数组名>[<表达式1>][<表达式2>]…[<表达式n>];
7 b" {6 e. p, w% O! |! B 在此<表达式1>,<表达式2>,…<表达式n>都是值为正整数的常量表达式。 : D2 y! C$ B- F1 u* ^
访问n维数组元素的语法是: 2 f: F! W5 I: @: I
<数组名>[<表达式1>][<表达式2>]…[<表达式n>];
- I: G" a* p, N) I/ r 在此<表达式1>,<表达式2>,…<表达式n>都是值为非负整数的表达式。<表达式i>(i=1,2,…,n)用来指定第i维元素的位置。 ) X! E$ S8 h9 S6 Q, P8 U% q+ g% \
在将多维数组作为函数的形参时,可以不指定该数组中第一维的大小,但是必须指定该数组中其他维的大小。多维数组只可以作为引用参数传递给函数,并且函数不能返回一个数组类型的返回值。C+ +对数组下标不做检查。 |