右值引用使用場景 將“引用”作為函數(shù)參數(shù)有哪些特點?
將“引用”作為函數(shù)參數(shù)有哪些特點?傳遞引用給函數(shù)與傳遞指針的效果是一樣的。這時,被調(diào)函數(shù)的形參就成為原來主調(diào)函數(shù)中的實參變量或?qū)ο蟮囊粋€別名來使用,所以在被調(diào)函數(shù)中對形參變量的操作就是對其相應的目標對
將“引用”作為函數(shù)參數(shù)有哪些特點?
傳遞引用給函數(shù)與傳遞指針的效果是一樣的。這時,被調(diào)函數(shù)的形參就成為原來主調(diào)函數(shù)中的實參變量或?qū)ο蟮囊粋€別名來使用,所以在被調(diào)函數(shù)中對形參變量的操作就是對其相應的目標對象(在主調(diào)函數(shù)中)的操作。 ②使用引用傳遞函數(shù)的參數(shù),在內(nèi)存中并沒有產(chǎn)生實參的副本,它是直接對實參操作;而使用一般變量傳遞函數(shù)的參數(shù),當發(fā)生函數(shù)調(diào)用時,需要給形參分配存儲單元,形參變量是實參變量的副本;如果傳遞的是對象,還將調(diào)用拷貝構(gòu)造函數(shù)。因此,當參數(shù)傳遞的數(shù)據(jù)較大時,用引用比用一般變量傳遞參數(shù)的效率和所占空間都好。 ③使用指針作為函數(shù)的參數(shù)雖然也能達到與使用引用的效果,但是,在被調(diào)函數(shù)中同樣要給形參分配存儲單元,且需要重復使用”*指針變量名”的形式進行運算,這很容易產(chǎn)生錯誤且程序的閱讀性較差;另一方面,在主調(diào)函數(shù)的調(diào)用點處,必須用變量的地址作為實參。而引用更容易使用,更清晰。
引用作為函數(shù)的參數(shù)有什么優(yōu)缺點?
特點:傳入實參本身,不創(chuàng)建副本好處:傳實參本身的好處如voidswap(int&a,int&b){intt=aa=bb=t}確實可以交換兩個變量如果是voidswap(inta,intb){intt=aa=bb=t}傳進去的是參數(shù)的拷貝,實參并沒修改2.不創(chuàng)建拷貝。可以很好的提升效率如果參數(shù)是一個結(jié)構(gòu)體或者類,很大,進行參數(shù)拷貝比較耗時,如果傳引用就避免了這個過程為了避免有時候不需要修改引用參數(shù)時對該參數(shù)誤操作,可以加const做保護