基本概念
同类型变量或对象的集合称为数组。
定义
在C++语言中,一维数组定义方法如下:
1 | int a[15]; |
其中,元素个数必须是常数或常量表达式。
数组中的变量称为数组元素,由于数组中每个元素都有下标,因此数组元素也成为下标变量。
数组下标取值从0开始,使用数组时下标不能越界。同一数组的所有元素在内存中占用一片连续的存储单元。
引用
每个数组元素都是一个变量,数组元素可以表示为:
数组名[下标]
其中,下标可以是任何值为整型的表达式,该表达式里可以包含变量和函数调用。引用时,下标值应在数组定义的下标值范围内。
数组的初始化
在定义一个一维数组的同时,可以给数组中的元素赋初值。
数组名[常量表达式]={值1,值2}
例:
1 | int a[10]={0,1,2,3,4,5,6,7,8,9}; |
与
1 | a[0]=0;a[1]=1;a[2]=2;a[3]=3;a[4]=4;a[5]=5;a[6]=6;a[7]=7;a[8]=8;a[9]=9; |
等价
数组越界
C++语言规定,使用数组时,要注意:
(1)数组元素下标为正整数。
(2)在定义元素个数的下标范围内使用。
然而,当在程序中把下标写成负数、大于数组元素的个数时,程序编译的时候是不会出错的。例如:
1 | int a[10]; |
这些语句的语法是正确的,能够通过编译。然而,它们要访问的数组元素并不在数组的存储空间内,这种现象叫做数组越界。
发现程序中有否数组越界没有什么好的方法,需要在编写时特别的注意,同时,程序编写完成后,加强静查。所谓“静查”,即认真阅读程序是否按照设计的要求编写。