c語言3種方式實現參數傳遞

學習計算機已經兩年了,參數傳遞已經成功噁心了我兩年,今天在寫二叉樹遍歷的時候成功對此忍無可忍。本文是在閱讀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操做,沒有進行內存申請,提升了運行效率。二叉樹

相關文章
相關標籤/搜索