C++数组

低级符合类型:数组、指针

数组的长度是固定的。数据一经创建,就不允许添加新的元素。指针可以向迭代器一样便利和检查数组中的元素。现在C++程序应尽量使用vector和迭代器类型,而避免使用低级的数组和指针。与使用标准的vector类型的程序相比,依赖于内置数组的程序更容易出错而且难于调试。

 

注意:数组定义中的类型名可以是内置数据类型或类类型;除引用之外,数组元素的类型还可以是任意的符合类型。没有所有元素都是引用的数组。

 

1.数组的定义和初始化

数组的维数必须要用大于等于1的常量表达式定义。此常量表达式只能包含整形字面值常量,枚举常量或者用常量表达式初始化的const对象,非const变量以及要到运行阶段才知道其值的const变量都不能用于定义数组的维数。

(1)显式初始化数组元素

const unsigned size = 3;
int arr[size] = {0,1,2};

 如果没有显式提供元素初值,则数组元素会像普通变量一样初始化。

在函数体外定义的内置数组,其元素均初始化为0;

在函数体内定义的内置数组,其元素无初始化;

不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化;如果该类没有默认构造函数,则必须为该数组的元素提供显式初始化。

 

显示初始化的数组不需要指定数组的维数值,编译器会根据列出的元素个数来确定数组的长度:

int ia[] = {0,1,2};//数组长度为3

如果指定了数组的长度,那么初始化列表提供的哦元素个数不能超过数组维数值。

 

(2)特殊的字符数组

char ca1[] = {'c','+','+'};		//维数是3
char ca2[] = {'c','+','+','\0'};	//维数是4
char ca3[] = "c++";			//维数是4

 (3)不允许数组直接复制和赋值

与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组赋值给另一个数组,这些操作都是非法的。

 

(4)数组的操作

数组可以用下标符来访问,数组元素也是从0开始计数。对于一个包含10个元素的数组,正确的下标值是从0到9,而不是1到10

 数组下标的类型是size_t。

const size_t array_size = 10;
int ia[array_size];
for(size_t ix = 0;ix!=array_size;++ix)
	ia[ix] = ix;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值