首先,什麼叫引用數組?顧名思義,就是一個數組,這個數組的每一個元素是一個引用。
其次,C++中引用的本質是一個指針常量,編譯過程中使用常指針作爲引用的內部實現。
int a;int * const p = &a;
int &r = a;
可以這樣理解 p 和 r 除了語法之外,其實質是完全等價的。
另外:常量在定義時必須初始化,那麼引用在定義時也同樣必須初始化。
ok,切入正題,C++對數組的初始化方法,沒有額外的定義,而是沿用了C語言的初始化方式。
鑑於以上,我們可以有如下分析
int a[]={1,2,3};
int *p[]={a,a+2,a+2};
在C++中可以使用拷貝構造,也就是用初始化列表中的值,拷貝構造數組中的元素,拷貝構造的形式:T::T(const T&);
另外C++中不允許定義引用的引用,所以括號內的T不能是引用類型,因此就不允許定義引用的數組。
那麼C++中爲什麼不允許定義引用的引用?