如何理解C語言中的值傳遞和引用傳遞??

Tags: 過程, 語言,

值傳遞和引用傳遞在C語言學習的過程中,總會讓很多人困擾,在此對此進行簡單的介紹,希望對大家有些幫助。

如何理解C語言中的值傳遞和引用傳遞?

工具/原料

c語言

方法/步驟

時間的代碼如下:通過互換值進行設置,下面的代碼可以運行:

#include #include void swap(int i,int j){ int temp=i; i=j; j=temp; }main(){ int i=3; int j=5; swap(i,j); printf("i的值為:%d\n",i); printf("j的值為:%d\n",j); system("pause"); }

如何理解C語言中的值傳遞和引用傳遞?

main方法中:int i=3,這句話在內存中開闢了一個空間並且保存了3

同理int j=5;

在swap方法中,swap(i,j)中的i,j都是從主函數中傳過來的值,並且它們也創建了兩個內存空間,所以它們只是在swap方法中進行了調換對main方法中的i,j沒有影響。

這種叫做值傳遞。

如何理解C語言中的值傳遞和引用傳遞?

void swap(int *p,int *q){ int temp=*p; *p=*q; *q=temp; }main(){ int i=3; int j=5; swap(&i,&j); printf("i的值為:%d\n",i); printf("j的值為:%d\n",j); system("pause"); }

如何理解C語言中的值傳遞和引用傳遞?

int i,j;都開闢了自己的空間,並且地址不同,swap中創建p,q的時候又創建了兩個空間,p中存放的是i的地址,q中存放的是J的地址

*p中表示的是i的值,*q中存放的是j的值,所以其改變能夠改變i,j的值

如何理解C語言中的值傳遞和引用傳遞?

引用傳遞:就是在傳遞的時候傳遞過去的是對象,把引用傳過去之後,然後再修改值,就可以完成交換,其實在轉換的過程中修改的是地址值。

其實引用傳遞也是一個值傳遞,只不過其傳遞的是一個地址。

如何理解C語言中的值傳遞和引用傳遞?

相關問題答案