【C++】为什么不能定义数组的引用,却可定义变量的引用

数组的引用的可以定义的,比如:
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<
 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<std::endl;
 }
 }
}
请使用浏览器的分享功能分享到微信等