可不可以寫成int*& y=x ?,怎么都是寫的int &y=x,因?yàn)槲铱匆曨l里有些是寫的前者
1 回答

asd8532
TA貢獻(xiàn)143條經(jīng)驗(yàn) 獲得超187個(gè)贊
int*&p 是 指針的引用。 他是一個(gè) 指針 的 別名 ,一般可以當(dāng)成 指針 使用。有時(shí)候,可以直接他的值,成為其他指針的引用
int&*p 是 引用的指針,這個(gè)是非法的,指針不能指向引用。引用不具有確定的存儲(chǔ),無(wú)法間接訪問(wèn)得到表示引用的存儲(chǔ)的左值,所以干脆人為規(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這樣一個(gè)聲明,我們從最接近value的符號(hào)看起,是個(gè)&,說(shuō)明value是一個(gè)引用,它是一個(gè)什么引用呢?再看*,它是一個(gè)指針的引用,即指針的別名,我們用*value就可以訪問(wèn)到實(shí)參的值了。所以,其交換函數(shù)的內(nèi)部邏輯跟int *是一樣的。
- 1 回答
- 0 關(guān)注
- 1198 瀏覽
添加回答
舉報(bào)
0/150
提交
取消