傳入引用參數
引用參數則是把形式參數轉換成實參,換句話說就是在函數體里面實際操作的是參數的本身,即存放變量值的內存。
傳入普通參數
當傳入的是普通參數時,實際上函數體做了一個偷天換日的動作,是把普通參數的值,復制到有函數體生成的一個內存中。所以,在函數體中參數的值和傳入時的值是一樣的,但是它們內存地址是不一樣的。
返回引用類型
返回引用類型和傳入引用參數類似,返回的值就是實際中函數體所操作的內存,所以,如果返回類型為引用時,不能將函數體中的局部變量返回,局部變量的生命周期在函數體結束,當函數體結束時,局部變量也跟着結束。返回類型為引用時可以作為左值和右值
返回普通類型
返回普通類型和傳入普通類型類似,函數體即將被返回的值也被偷天換日,將准備返回的值放入一個新生成的內存,最后再返回新生成的內存,這樣就解決了函數體結束,局部變量也跟着結束的問題。返回類型為普通類型時,只能作為右值來使用
PS:如果能弄到上面的東西,也就能理解傳入指針和傳入引用,返回指針和返回引用的區別。