vector在创建的时候需要元素类型和名称两个信息,而vector的大小可以在初始化的时候指定,也可以不指定。由于数组是静态的,因此我们一定要为其指定大小,这也称作数组的维度(Dimension)。数组的维度必须像switch的case后面的表达式那样,是一个在编译的时候就能确定的整型常量表达式。下面我们来看几个数组创建的示例。
动手写6.1.1
动手写6.1.1展示了数组的创建。arr1直接使用整型字面量作为数组大小,这没有什么问题;arr2使用const int,在编译的时候值也是确定的;arr3使用了const int和字面量的算术表达式,值也可以确定;最后的arr4由于使用了变量,虽然在num初始化和数组初始化之间并没有不确定的改变,但是使用变量就是不合法的,编译程序会报出如图6.1.1所示的错误:
(www.xing528.com)
图6.1.1 使用变量作为数组大小的报错
动手写6.1.1中我们定义了一些空的数组,然而并没有给出数组的元素初始值,因此数组的初始值将会是编译器默认的初始值或者无法预计的随机数值。为了保证程序的确定性,我们可以像vector那样给数组的每个元素分别赋值,也可以使用如下的显式数组初始化方法,又称初始化列表。
动手写6.1.2
动手写6.1.2展示了初始化列表的几种用法。我们可以看到,在花括号中的数字就是我们按顺序给数组每个元素赋的值。arr1的初始化列表中的值个数与数组大小相等,而arr2中的值个数比数组大小少,在这种情况下没有初始化的元素依然有着默认的值。如果初始化列表中元素个数超出了数组大小,那么编译器会报错。要注意,在最后的arr3中我们没有给定数组的大小,在这种情况下数组大小会随着初始化列表的大小而确定。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。