一、数组
一种可以存储多个同类型值的数据格式。每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素。
1.1、数组的声明
数组的声明需要明确指出以下三点:
a. 存储元素类型
b.数组名
c.数组中的元素个数
通用格式如下:
typeName arrayName[arraySize];
arraySize是元素的个数,必须是整型常数或const值,也可以是常量表达式,即其中所有的值在编译时都是已知的。(不能是变量,因为变量的值是在程序运行的时候设置的)。
示例如下:
int month[12] //create array of 12 int
1.2、数组的访问
单独访问数组元素的方法是使用下标或索引来对元素进行编号。C++数组从0开始编号,这可能与其他编程语言不同。使用带索引的方括号表示法来指定数组元素。
请注意最后一个元素的访问索引要比数组长度小1。编译器不会检查使用的下标是否有效,但是程序运行以后可能会引发问题,包括但不限于破坏数据或导致程序异常终止,所以编程时要确认访问使用的下标是有效的。
例如months[0]是months数组的第一个元素,months[11]是months数组的最后一个元素。
1.3、数组的初始化
a. 只有在定义数组的时候才能使用初始化,此后不再允许,也不能将一个数组赋值给另一个数组。(但是可以通过下标分别给数组中的元素赋值)
示例如下:
int cards[4] = {1, 2, 3, 4}; //Okay
int hands[4]; //Okay
hands[4] = {5, ,6, 7, 8}; //Not allowed
hands = cards; //Not allowed
doubel input[4] {1.2, 2.3, 5.6, 7.8}; //C++11 is Okay, ignore "="
int counts[10] = {}; //C++11 is Okay, all elements set to 0
float balance[100] {}; //C++11 is Okay, all elements set to 0
b. 初始化数组时,提供的数组可以少于数组声明的元素数量。
float tips[5] = {2.0, 3.0};
c. 如果是只对数组的一部分进行初始化,则编译器将其他元素设置为0,所以如果需要将数组所有元素初始化为0,则需要显式的将第一个元素初始化为0,然后让编译器将其他的元素都初始化为0即可。
如果初始化为{1}则第一个元素被赋值为1,其他的元素还是设置为0。
long total[100] = {0};
int days[31] = {1};
d.如果初始化数组时方括号内元素个数为空,C++编译器将计算元素个数,自动确定数组元素的个数。
short things = {1, 3, 5, 8};//Maybe not good