值傳遞和位址傳遞的理解

2021-07-27 12:51:44 字數 666 閱讀 5692

void func(int a) 

int a=10;

func(a);

printf("a=%d",a); // 仍然顯示 a=10, 因為整型引數a在func()中是按值傳遞的, 也就是說func()僅使用a的值, 而對儲存a的記憶體位址不加修改;

void func(int* a)

int a=10;

func(&a);

printf("a=%d",a); // 顯示 a=100, 因為整型引數指標a在func()中是按位址傳遞的, 也就是說func()使用a的儲存位址, 直接修改其內容.

陣列引數與指標引數相同, 均按位址傳遞.

本回答由提問者推薦

採納率:48% 來自:芝麻團 擅長: 電腦/網路

影象處理軟體

c/c++

中醫數學

int main()

void swap(int a,int b);//實際是不能交換a和b的值的,是值傳遞

而void f(int a,int n)

來自:求助得到的回答

值傳遞 位址傳遞

在呼叫乙個有引數的過程時,首先進行的是形式引數與實在引數的結合,實現呼叫過程的實在引數與被呼叫過程的形式引數之間的資料傳遞。資料傳遞方式有兩種方式 按值傳遞與按位址傳遞。1.按值傳遞引數 按值傳遞引數時,是將實在引數的值複製乙個形式引數中,如果在呼叫過程中改變了形式引數的值,不會影響實在引數本身,即...

詳述值傳遞和位址傳遞

1.值傳遞 值傳遞可以簡單的理解為將實參的值傳遞給形參,之後即使修改了形參的值,實參的值還是不會改變。package yang public class yangyujie 執行結果 102.位址傳遞 位址傳遞,顧名思義傳遞的是位址,實參和形參指向同乙個位址,改變形參的值是可以改變實參的值的。pac...

C 值傳遞和位址傳遞

在c 呼叫函式時,會存在值傳遞和位址傳遞,也叫 傳引用和傳值 正好用到這方面內容,因此做個總結,加深一下理解,如果有不到位或者不準確的地方,請小夥伴們多指教。1 位址傳遞時,形參和實參是同乙個變數,即使用相同的記憶體空間,二者有相同的位址。而傳值時二者位址不同 2 位址傳遞時,由於沒有新建變數,所以...