4.2 数组
优质
小牛编辑
142浏览
2023-12-01
数组是具有相同名称和相同类型的一组连续内存地址。要引用数组中的特定位置或元素,就要指定数组中的特定位置或元素的位置号(position number)。
图4.1显示了整型数组c。这个数组包含12个元素。可以用数组名加上方括号(1))中该元素的位置号引用该元素。数组中的第一个元素称为第0个元素(zeroth elemem)。这样,c数组中的第一个元素为c[0],c数组中的第二个元素为c[1],c数组中的第七个元素为c[6],一般来说,c数组中的第i个元素为c[i-1]。数组名的规则与其他变量名相同。
方括号中的位置号通常称为下标(subscript),下标应为整数或整型表达式。如果程序用整型表达式下标,则要求值这个整型表达式以确定下标,例如,假设a等于5,b等于6,则下列语句:
c[a + b] += 2
将数组元素c[11]加2。注意带下标的数组名是个左值,可用于赋值语句的左边。
图4.1中整个数组的名称为c,该数组的12个元素为c[0]、c[1]、c[2]...c[11]。的值为-45、c[1]的值为6、c[2]的值为0,c[7]的值为62、c[11]的值为78。要打印数组c中前三个元素的和,用下列语句:
cout<< c[0]+c[1]+c[2] <<endl;
要将数组c的第7个元素的值除以2,并将结果赋给变量x,用下列语句:
x = c[6] / 2;
常见编程错误 4.1
一定要注意“数组的第7个元素”与“数组元素7”之间的差别。由于数组下标从0开始,因此“数组第7个元素”的下标为6,而“数组元素7”的下标为7,是第8个元素。这常常是“差1错误”的原因。
包括数组下标的方括号实际上是个C++运算符。方括号的优先级与括号相同。图4.2显示了本书前面介绍的C++运算符优先级和结合律。运算符优先级从上到下逐渐减少。
运算符 | 结合律 | 类型 |
() [] | 从左向右 | 括号 |
++ -- + - ! static_cast() | 从右向左 | 一元 |
* / % | 从左向右 | 乘 |
+ - | 从左向右 | 加 |
<< >> | 从左向右 | 插入/读取 |
< <= > >= | 从左向右 | 关系 |
== != | 从左向右 | 相等 |
&& | 从左向右 | 逻辑与 |
从左向右 | 逻辑或 | |
?: | 从右向左 | 条件 |
= += -= *= /= %= | 从左向右 | 赋值 |
, | 从左向右 | 逗号 |
图 4.2 运算符的优先级和结合律