1. 程式人生 > 其它 >陣列的引用和引用的陣列

陣列的引用和引用的陣列

一、主要區別

//array首先向右結合,所以這個相當於 (int&)array[] array是個陣列,其中的元素是引用
//應該叫:引用的陣列
int &array[]
//array首先和&結合,所以array是引用,引用的物件是陣列
//應該叫作陣列的引用
int (&array)[10] 

二、引用陣列

首先,可以明確的說明,引用的陣列是不能當函式的引數的。再者要說明,這種方式是非法的。

原因:從引用的本質說吧

首先,引用必須被初始化,這沒得說,而陣列並不能被另一個數組初始化或被另一個數組賦值這是其一,並且其中的每一個引用,你沒有辦法給他一下子初始化。

再次,引用它不支援傳統意義的複製,它不佔用新的空間

再再次,他沒有意義,它可以用指標陣列實現,完全可以代替

int i,j;
int *a[5] = {&i, &j};
a[0]; // point to i
a[1]; // point to j

三、陣列的引用

如果不好理解,可以這樣理解(從網上看到的)

int n3[3] = {2, 4, 6};
int (&rn3)[3] = n3;     //陣列的引用

四、陣列的引用的應用

void Test(int (&array)[5])
{
    cout << "size:" << sizeof(array) << endl;
    
for (int i = 0; i < sizeof(array)/4; i++) { cout << array[i] << " "; } } int main() { int array[5] = {1,2,3,4,5}; Test(array); return 0; }

out:

size:20

1 2 3 4 5