C语言:函数中参数的传值与传地址
生活随笔
收集整理的這篇文章主要介紹了
C语言:函数中参数的传值与传地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
任務代碼:
?
#include <stdio.h>
void swap(int *a ,int *b)//按之前對指針認識,*a代表指針變量a,a存儲的是地址,*a是地址的值。
{ //但是可以看到下面傳輸過程中swap(&a,&b),取的是地址傳輸給了*a.看似是矛盾的!
//這里著重注意特例!!!:函數的參數是指針類型,會將一個變量的地址傳送到被調用的函數中。
//不是傳遞值,是傳遞地址值!!!!!!
int t;
t=*a;
*a=*b;
*b=t;
return;
}
int main()
{
int a,b;
printf("請輸入兩個數:");
scanf("%d %d",&a,&b);
printf("調用前:%d %d\n",a,b);
swap(&a,&b);//傳輸的是a,b兩個變量的地址
printf("調用后:%d %d\n",a,b);
return 0;
}
?
?
執行情況:
知識總結:
函數調用結束后回會釋放內存空間;
傳地址需要運用指針來做:
尤其注意特例:和傳統指針概念理解的的不同
另外:這兩種看似符合邏輯的做法也是行不通的!(尤其是第二種)
所有函數指針在執行的時候,形式參數的值無論怎么變化都會被內存釋放(不會影響返回結果),而真正有存在意義的是形式參數中存放的地址,將會再返回的時候影響結果
心得體會:
總結
以上是生活随笔為你收集整理的C语言:函数中参数的传值与传地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: new与malloc的区别以及实现方法
- 下一篇: 内存区域的划分和分配