可不可以寫成int*& y=x ?,怎么都是寫的int &y=x,因為我看視頻里有些是寫的前者
1 回答

asd8532
TA貢獻143條經(jīng)驗 獲得超187個贊
int*&p 是 指針的引用。 他是一個 指針 的 別名 ,一般可以當成 指針 使用。有時候,可以直接他的值,成為其他指針的引用
int&*p 是 引用的指針,這個是非法的,指針不能指向引用。引用不具有確定的存儲,無法間接訪問得到表示引用的存儲的左值,所以干脆人為規(guī)定禁止構(gòu)造指向引用的指針類型。
#include?<iostream> using?namespace?std; void?swap5(int?*&a,?int?*&b){ ????int?tem?=?*a; ????*a?=?*b; ????*b?=?tem; } int?main(){ ????int?a?=?1; ????int?b?=?2; ????int?*aPtr?=?&a; ????int?*bPtr?=?&b; ????int?*&arPtr?=?aPtr; ????int?*&brPtr?=?bPtr; ????swap5(arPtr,?brPtr); ????cout<<"a?=?"<<a<<endl; ????cout<<"b?=?"<<b<<endl; ????system("pause"); ????return?0; }
int*& ?value這樣一個聲明,我們從最接近value的符號看起,是個&,說明value是一個引用,它是一個什么引用呢?再看*,它是一個指針的引用,即指針的別名,我們用*value就可以訪問到實參的值了。所以,其交換函數(shù)的內(nèi)部邏輯跟int *是一樣的。
- 1 回答
- 0 關(guān)注
- 1181 瀏覽
添加回答
舉報
0/150
提交
取消