數組的引用和引用的數組


一、主要區別

//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 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM