C++中的数组

数组

数组是一种类似于标准库类型vector的复合类型。它是大小固定且只能存储相同类型对象的容器。vector中对象的类型可以是vector,类似的,数组中对象的类型也可以是数组,这就形成了多维数组。即: 多维数组是数组的数组。

一、声明及定义

数组的声明方式如下:
(Type)  name[d];//type表示数组中存储的数据类型那个,d为数组的大小,其中维度d必须是一个常量表达式,其值必须大于0
定义数组的时候必须指明数组的类型,不能采用关键字 auto 由初始值得列表来进行推断。
对于复杂的数组声明,可以采用从右向左,由里向外来进行理解。
int *ptr[10];//从左到右:大小为10的数组->数组的名字为ptr->数组的类型为指针->指向的类型为int。
             //那么:ptr是一个含有10个整型指针的数组。
int (&arrRef)[10] = arr;//由里到外:arrRef是个引用->引用的是大小为10的数组->数组元素类型是int。
                       //那么:arrRef引用一个含有10个整数的数组。

二、初始化

1、对数组的元素进行列表初始化时,可以省略其维度值,此时列表的大小即为维度的大小。
2、如果设定的维度值比列表的元素个数要多时,只会按顺序对数组中的元素值进行初始化,其余的执行默认初始化。
3、字符(char)数组的初始化可以使用字符串(string)字面值进行初始化,但此时在 数组的末尾会存在一个空字符!!!
4、数组不可以进行拷贝作为其初始值和也不能进行赋值操作,这点不同于string和vector。

三、方法

1、访问:通常采用数组下标来对数组元素进行访问,其数组下标的类型为: size_t 类型,一种与机器相关的无符号类型,在cstddef头文件中定义。
2、数组除了大小固定之外,其他用法与vector基本类似。

四、数组与指针

1、使用数组的时候,编译器一般会将数组转化为指针;
2、在很多用到数组名字的地方,编译器会自动的将其替换为一个指向数组首元素的指针;
3、当 auto 和 decltype 作用于数组名是会产生不同的效果;auto返回的是指针类型而decltype返回的是数组类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值