傳值與傳位址

2021-06-28 20:50:21 字數 672 閱讀 6363

傳遞數值:

#include //exchange numbers

void exchange_number(int inum_1,int inum_2)

int main(int argc, const char * argv)

數值並不會交換!

由於自定義函式中只是交換了inmu1和inum2對應儲存空間中的數值。在函式結束時這些空間會被釋放。而inumber12對應儲存空間中的數值並沒有發生改變。

傳遞指標:

#include //exchange numbers

void exchange_number(int *inum_1,int *inum_2)

int main(int argc, const char * argv)

將儲存兩個數字的位址傳遞給自定義函式(因為是傳遞位址所以自定義函式中儲存他們的inum1和inum2是指標形式的)。

將inum1中儲存的位址中儲存的數值(也就是inum1指向的數值)賦給t。

將inum2指向的數值放在inum1指向的位址

將t中的值放在inum2中儲存位址的位置

函式結束num1和num2,t被釋放。

但是未被釋放的他們指向位址的儲存空間中存的值已經被改變了

C 傳值與傳位址

include struct object 傳值方式 void text1 object a 傳位址方式 void text2 object a int main text1 obj text2 obj return 0 1.傳值方式函式的形參是傳入的實參的乙份拷貝,形參是函式的區域性變數,只在函式...

傳值 傳引用 傳位址

1.值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。void swap int a,int b 呼叫 int x,y swap x,y 實...

傳值呼叫與傳位址呼叫(傳引用)

c c 中引數傳遞有兩種方式,傳值或傳位址 傳引用 通常我們要在被呼叫函式中改變乙個變數的值就需要傳位址呼叫方式,例如 void swap by value int a,int b void swap by ptr int pa,int pb int main int argc,char argv ...