C++数组

复杂的数组声明

int (*Parray)[10] = &arr; //Parray指向一个含有10个整数的数组
int (&arrRef)[10] = arr; //arrRef引用一个含有10个整数的数组

从内向外理解,Parray的含义:首先是圆括号括起来的部分,*Parray意味着Parray是个指针,接下来观察右边,可知道Parray是个指向大小为10的数组的指针,最后观察左边,指导数组中的元素是int类型;

int *(&arry)[10] = ptrs; //arry是数组的引用,该数组中含有10个指针

arry是个引用,观察右边可知arry引用的对象是一个大小为10的数组,最后观察左边指导,数组的元素类型是指向int的指针。

标准库函数begin和end

C++新标准引入了两个名为begin和end的函数,这两个函数与容器中的两个同名成员功能类似

int ia[] = {0,1,2,3,4,5,6,7,8,9};
int *begin = begin(ia);  //指向ia首元素的指针
int *last = end(ia); //指向arr尾元素的下一位置的指针

多维数组

严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。

多维数组的初始化

int ia[3][4]={
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
//显式地初始化每行的首元素
int ia[3][4]={{0},{4},{8}};
//显式地初始化第一行,其他元素执行值初始化
int ix[3][4]={0,3,6,9};


指针和多维数组

int ia[3][4];
int (*p)[4]=ia; //p指向含有4个整数的数组
p=&ia[2]; //p指向ia的尾元素

你可能感兴趣的:(c++,开发语言)