C++ 数组(1)

数组是一直类似于标准库类型vector的数据结构,与vector相同点为都是存放类型相同的数据类型的容器(如果不清楚对象个数,请用vector).这些对象本身没有名字,要通过数组名和所在位置访问.与vector不同点为数组大小固定不能随意添加元素.
1.定义和初始化数组
数组是一种复合类型,如a[b],表示一个数组,a—数组名,b—维度,维度说明元素个数,所以维度必须大于0.并且维度必须为已知的.

int a[10];    //数组名为a,里面含有10个int型数据,用a[0]到a[9]访问.
int *p[10];    //含有10个整形指针的数组.

1.可以对数组的元素进行列表初始化,这种情况可以忽略维度,维度由初始值数量计算出来.如果指明维度,初始值数量不要超过维度大小,如果维度大于初始值数量,则用初始值初始化靠前的元素,剩下的元素使用默认值.
2.字符数组还可以用字符串字面值初始化,但是要注意字符串后面的空字符.
3.不能用数组为其他数组赋值,也不能用数组作为其他数组的初始值.
4.默认情况下,类型修饰符从右至左依次绑定.

int a1[3] = {1,2,3};        //含有三个元素1,2,3
int a2[] = {1,2,3};     //含有三个元素1,2,3
int a3[5] = {1,2,3};        //相当于a3[5] = {1,2,3,0,0};
string a4[3] = {"hi","bye"};    //相当于a4[3] = {"hi","bye",""};
int a5[3] = {1,2,3,4};      //错误:初始值过多
char c1[] = {'c','+','+'};  //三个元素
char c2[] = {'c','+','+','\0'}; //四个元素
char c3[] = "c++";      //四个元素,自动添加空字符
char c4[3] = "c++";     //错误,初始值数量大于维度
int a6[] = a2;          //错误
a6 = a2;            //错误
int *a7[10];            //a7是含有10个整型指针的数组

2.访问数组元素
通常数组使用范围for语句和下标运算符访问,索引从0开始,一个含有10个元素的数组下标为0到9.

int a[5] = {1,2,3,4,5};         //定义一个数组
cout << a[1] <<endl;            //使用下表访问

for(auto i : a)             //使用for范围访问
    cout << i << endl;

3.指针和数组
1.使用数组的时候,编译器一般会把数组转化为指针.
2.指针也是迭代器,数组的指针支持vector和string迭代器的所以运算.如:使用指针自加运算使指针指向下一个元素.

string nums[] = {"one","two","three"};
string *p = &nums[0];   //指向nums[0]
string *p2 = nums   //指向数组,即数组首元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值