學習計算機已經兩年了,參數傳遞已經成功噁心了我兩年,今天在寫二叉樹遍歷的時候成功對此忍無可忍。本文是在閱讀https://blog.csdn.net/u013097971/article/details/77983810後寫下的,算是對參數傳遞的總結,請移步原創。函數
1、值傳遞學習
值傳遞有兩種,一種是傳遞參數的值,一種是傳遞參數的地址spa
圖二中傳遞的是a,b的地址,在swap函數中,將a,b分別賦值給x,y。雖說x,y進行了值交換,可是a,b並無進行交換,因此主函數輸出時並未交換.net
2、地址傳遞3d
在該次中傳遞的是a,b的地址,在swap中,x,y分別表示指向a,b地址的地址,即*x,*y表示a,b的地址,是真正的實現了地址交換,因此主函數輸出時實現了交換。blog
3、引用傳遞內存
這是一種最難以理解的傳遞方式,我去吃點飯,稍後再繼續get
這頓飯吃的稍微有點長哈,繼續說引用傳遞,引用傳遞實質是對實參自己進行了直接操做,在改函數中,能夠理解爲x即a,y即b。效率
通常函數在調用結束後就會釋放全部的內存,在這個swap函數裏,是直接對a,b操做,沒有進行內存申請,提升了運行效率。二叉樹