陣列的引用和引用的陣列
阿新 • • 發佈:2021-08-23
一、主要區別
//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