C語言教學 函式之間傳值和傳址的區別

2021-06-19 03:38:43 字數 854 閱讀 1102

函式之間引數的傳遞, 對於一般的概念(函式的定義,函式返回值,函式的呼叫等)就不在這裡重述了, 對於初學者總是不好理解, 其實這和我們中學學習的f(x,y)=x2+y2-1是一樣的, 我們可以把x,和y賦相應的值, 帶入後就會得到函式的位址. 這樣我們就看到了, 函式我們早就接觸過了, 計算機中的函式也是如此的, 只是換了一種表現形式.  函式可以理解為乙個小的加工工廠, 我們把x,和y原材料輸進這個工廠後,  工廠經過"加工" 會給我們返回乙個和函式型別一致的乙個東西.   

對於函式之間傳值:

所謂的傳值, 就是把變數"箱子" 中的內容(蘋果) ,傳遞過去, 而不是把箱子的位址傳遞給形參(形參就是工廠的模具) ,實參就是x和y, x和y恰好能放到模具中.  

傳遞位址就是把箱子(變數)的位址傳遞過去, 這時候要注意我們的形參和實參用的是同乙個位址, 也就是形參中的箱子中存放的是實參的位址, 這樣操作形參就相當於操作實參! 所以兩個數交換的例子又會被提到, 很經典! 我們用這個例子來看(例子以及執行結果):

我們可以用圖來表示以上的呼叫關係:

傳遞位址:

很簡單很基礎的東西, 總結下來, 記錄曾經走過的腳印...

c語言的傳值和傳址

我們都知道c語言中函式傳參有兩種方式 傳值和傳址 傳值 實參把值傳給形參,但沒有傳位址,即對實參的修改無效 生成臨時變數 核心原理 函式會對形參和中間變數重新分配空間 void swap int pleft,int pright 優點 安全 函式的 不會影響外部實參 區域性變數值的交換對主函式的變數...

函式的傳值和傳址呼叫(C語言)

1 傳值呼叫。傳值呼叫顧名思義就是將引數的值傳遞給函式,而函式在進行呼叫時會複製這個值,然後將複製的值在函式中進行呼叫。void swap int a,int b int temp temp a a b b temp int main void int x 1,y 2 swap x,y printf...

C語言函式引數的傳值和傳址呼叫

大家都知道,c語言一般的引數都是傳值呼叫的,但有時候也有例外,下面就分析一下什麼時候傳值呼叫,什麼時候傳址呼叫。標量引數都是傳值呼叫,不會對標量產生任何影響 include void add one int value int main int argc,char const argv 執行結果 傳...