数组的引用的可以定义的,比如: int a[10]; int(&ra)[10]=a; 或者: int* const& ra=a; //数组是个地址,那么先定义一个int地址的引用int*& ,数组名有const特性,所以引用也要是个const,于是用const修饰& 就有int* const& ra=a; 这个实际上是个指针的引用,和int(&ra)[10]=a;还是有区别的。 int(&ra)[10]=a;这是个真正的数组的引用,用sizeof(ra)可以看出区别. 但不能定义引用数组,就是所有元素都是引用的数组: int& ra[10]; //这个是不行的 ,定义数组时要分配空间,而引用是不占用内存空间的,所以c++规定不可以定义引用数组 //数组引用传递例子如下: bool array_assign(int (&p)[3],int (&q)[3]){//std::cout<<sizeof(p)<<std::endl;if(sizeof(p)!=sizeof(q)){std::cout<<"The subscript values do not match@!!!"<<std::endl;return false;}for(size_t i=0;i<sizeof(q)/sizeof(q[0]);i++){p[i]=q[i];}return true;}int main(){int a[3]={2,8,16};int b[3];bool rest;rest=array_assign(b,a);if(rest){for(size_t i=0;i<3;i++){std::cout<<b[i]<<std::endl;}}}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30221425/viewspace-2142581/ ,如需转载,请注明出处,否则将追究法律责任。