數據的傳值與引用(轉)
數據的傳值與引用主要體現在函數調用時候,通過參數來實現。
當數據在傳遞時,內存為實際參數開辟內存地址及內存空間,存放數據變為形式參數(非同于實際參數的內存地址和內存空間)。當調用函數完后,定義函數相應的執行并沒有改變實際參數。
當數據(數組在引用時),內存只開辟內存地址而并不開辟內存空間,開辟的內存地址相同,決定了同一個地址位置。函數調用時,實際參數在定義函數的執行過程中,發生改變,因而成為引用。有點類似與淺拷貝,用的是同一個地址。
總之:
數據的傳遞,內存不僅開辟存放數據的內存地址,還開辟存放數據的內存空間,數據傳遞到定義函數時候,實際參數到形式參數后,內存自動清空數據,數據在定義函數執行后不發生任何變化;數組在引用時,盡開辟了內存地址,并沒有開辟存放數據的空間,數組在函數調用后,引用的是同一內存地址,必然數組經過定義函數后,實際參數發生改變。