一、主要區別
//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
