常據說不要把形參直接拿來直接用,要用個局部變量把它拷貝一遍,以避免直接引用,若是被我改動了這個引用的變量,影響到其餘用了這個方法的方法。數組
那麼參考c語言相關文章的一段話:函數
咱們已經知道,數組元素要經過數組名和相應的下標一個個地引用,而數組名能夠做函數的實參和形參。當數組做爲函數參數時,調用函數中的實參數組只是傳送該數組在內存中的首地址,即調用函數通知被調函數在內存中的什麼地方找到該數組。在前面咱們已經知道了函數參數的值傳遞方式,調用函數向被調函數傳遞數據地址的方式,稱之爲函數參數的引用傳遞。
函數參數的引用傳遞不一樣於值傳遞。值傳遞時是把實參的值複製到形參,實參和形參佔用不一樣的存儲單元,形參值的改變不會影響到實參。而數組做爲函數參數傳遞時,是引用傳遞方式,即把實參數組在內存中的首地址傳給了形參,被調函數能夠經過該地址,找到實參數組中的各個元素。這就意味着:在被調函數中,若是改變了形參數組某元素的值,在被調函數中,實參數組對應元素的值也會發生相應的改變。
傳值調用與傳址調用的區別在於,使用傳值調用時,函數接收的是函數值的一份拷貝;另外一方面,使用傳址調用時,函數接收的是變量的內存地址。所以,函數能改變存放於指定內存單元(也就是變量值)的值,所做的改變在函數結束後繼續保留下來。
函數參數的引用傳遞是有用的。例如當數組做函數參數時,僅僅傳送數組在內存中的首地址,避免了複製每個數組元素,能夠節省機器的內存和運行時間。另外, 因爲函數中return語句只能帶回一個返回值,若是被調函數中有多個返回值,咱們經常經過數組帶回。但對引用傳遞應該 注意: 被調函數中對形參數椐的不恰當的改變,會破壞調用函數中的實參數據。
用數組做參數,自己就能夠改變數組元素的值,不須要再返回數組,何況也不能返回數組,只能是指針。若是array是return在函數中,這在函數執行完後會回收array佔用的地址。若是這時return指針的話,只是一個空地址。
養成良好習慣吧。。spa