数组----

数组


定义和初始化内置数组

显式初始化数组元素

如果维度比提供的初始值数量大,则用提供的初始值初始化靠前的元素,剩下的元素被初始化为默认值。

const unsigned sz = 3;         // 维度必须是一个常量表达式
int ia1[sz] = {0, 1, 2};       // 含有三个元素的数组,元素值为0,1,2
int a2[] = {0, 1, 2};          // 纬度为3的数组
int a3[5] = {0, 1, 2};         // 等价于a3[] = {0, 1, 2, 0, 0}
string a4[3] = {"hi", "bye"};  // 等价于a4[] = {"hi", "bye", ""}

不允许拷贝与赋值

不能将数组的内容拷贝给其他数组作为其初始值,也不能为其他数组赋值:

int a[] = {0, 1, 2};
int a2[] = a;        // 错误:不允许使用一个数组初始化另一个数组
a2 = a;              // 错误:不能把一个数组直接赋值给另一个数组

指针与数组

在大多数表达式中,使用数组类型的对象其实是使用一个指向该数组首元素的指针。

string nums[] = {"one", "two", "three"};
string *p = &nums[0];  // p指向nums的第一个元素
string *p2 = nums;     // 等价于p2 = &nums[0]

下标与指针

标准库类型限定使用的下标必须是无符号类型,而内置的下标运算无此要求,内置的下标运算符可以处理负值。

int *p = &ia[2];
int j = p[1];      // 等价于ia[3]
int k = p[-2];     // 等价于ia[0]

C++程序应当尽量使用vector和迭代器,避免使用内置数组和指针;应当尽量使用string,避免使用C风格的基于数组的字符串

多维数组

C++中没有多维数组,通常所说的多维数组其实是数组的数组。

多维数组初始化

int ia[3][4] = {
	{0, 1, 2, 3},
	{4, 5, 6, 7},
	{8, 9, 10, 11}
};

指针与多维数组

int *ip[4];     // 整型指针的数组
int (*ip)[4];   // 指向含有4个整数的数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值