《c++primer》 第四章 数组和指针(1)

数组和指针是c++提供两种类似Vector和迭代器类型的低级复合类型。只有在强调速度时才在类实现的内部使用数组和指针。数组中每个单独的对象没有单独的名字,而是通过它在数组中的位置对它进行访问数组相对于Vector的缺点:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。

4.1 数组

数组 类型名,标识符和维数组成的复合类型。类型名规定了存放在数组中的元素的类型,而维数则指定数组中包含的元素个数。

4.1.1数组的定义和初始化

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

2>显示初始化数组元素  在定义数组时,可为其元素提供一组用逗号分隔的初值,这些初值用花括号括起来,称为初始化列表。

2>在没有显式初始化数组时,数组元素会像普通变量一样初始化:a、在函数体外定义的内置数组,其元素均初始化为0.b、在函数体内定义的内置数组,其元素无初始化。c、不管在哪定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化;如果该类没有默认的构造函数,则必须为该数组的元素提供显示初始化。

3>如果维数大于列出的元素初值个数,则只初始化前面的数组元素;剩下的其他元素,若是内置类型则初始化为0,若是类类型则调用该类的默认构造函数进行初始化。

4>特殊的字符数组 字符数组既可以用一组花括号括起来、逗号隔开的字符字面值进行初始化,也可以用一个字符串字面值进行初始化。字符串字面值包含一个额外的空字符(null)用于结束字符串。

5>不允许数组直接复制和赋值

4.1.2 数组操作

1>检查数组下标值 除了程序员自己注意细节,并彻底测试自己的程序之外,没有别的办法可防止数组越界。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值