C語言 函式 位址和指標 值傳遞和位址傳遞的區別

2021-10-24 05:43:29 字數 798 閱讀 7962

函式呼叫中,實參的資料和形參對應傳遞,有兩種傳遞方式:

1.值傳遞(只傳送值,實參不做改變)

2.位址傳遞(傳送位址,實參被改變)

# include

void

swap

(int

,int);

intmain

(void

)void

swap

(int a,

int b)

//void:沒有返回引數

/* 結果:

(1)x=10 y=20

(2)a=10 b=20

(3)a=20 b=10

(4)x=10 y=20 值傳遞,只傳送值,實參不做改變

請按任意鍵繼續. . .

*/

# include

void

swap

(int*,

int*);

//形參是指標變數

intmain

(void

)void

swap

(int

*a,int

*b)/

*結果:(1

)x=30 y=20(

2)a=

30 b=20(

3)a=

20 b=30(

4)x=

20 y=

30 位址傳遞,實參被改變

請按任意鍵繼續...

*/

C語言 關於值傳遞和位址傳遞

初學者在學習c語言時候乙個極容易迷惑的地方就在函式的 值傳遞 和 位址傳遞 了,出現這個迷惑的原因有些教材沒有把記憶體圖畫出來,只是簡單的舉了幾個例子,結果初學者按照例子寫寫 倒是能執行出來,但始終沒明白到底是怎麼回事,下面我通過例子和畫圖來相信說明裡面的細節問題。在開始之前有乙個前提,你一定要粗略...

C語言值傳遞和位址傳遞詳解

目錄 我們舉乙個例子 寫乙個函式找出兩個整數中的最大值。include get max函式 int get max int x,int y int main 執行結果是 max 20 我們來分析一下這個函式呼叫過程 num1,num2作為實參傳入get max 函式,形參x,y被例項化 分配記憶體單...

C 函式位址傳遞和值傳遞區別

目錄 c 位址傳遞和值傳遞區別 1 位址傳遞vs值傳遞 2 演示 相當於通過尋找位址 傳遞,然後 解引用,修改變數的值。void swap int p1,int p2 swap a,b 呼叫值傳遞 之間進行形參內部的值的改變,不會改變實參,只會影響形參。相當於在函式內部做了賦值的操作。void sw...