問題:將“引用”作為函數的參數有哪些特點?
分析:
這道題不僅考差了對引用的理解和應用,同時考差了對函數的三種傳遞參數方式基本概念的理解。總結起來,有如下特點:
• 傳遞引用給函數與指針的效果是一樣的。這時,被掉函數的形參就被當成原來主調函數中實參變量或對象的一個別名來使用,所以在被調函數中對形參變量的操作就是對其相應目標對象的操作。
• 使用引用傳遞函數的參數,在內存中並沒有產生實參的副本,它是直接對實參操作,而使用一般變量傳遞函數的參數,當發生函數調用時,需要給形參分配存儲單元,形參變量是實參變量的副本,如果傳遞的是對象,還要調用拷貝構造函數。因此,當參數傳遞的數據較大時,用引用必用一般變量傳遞參數的效率更高,所占空間也更少。
• 使用指針作為函數的參數雖然也能達到跟使用引用相同的效果。但是,一方面,再被調函數中同樣要給形參分配存儲單元,在使用時需要重復使用以“指針變量名”的形式進行運算,這很容易產生錯誤且程序的可讀性較差,另一方面,在主調函數的調用點處,必須用變量的地址作為實參。因而引用更容易使用更清晰。