C語言形參跟實參詳解


形參與實參
今天我們來說下c語言形參與實參的區別,形參跟實參理解的話也很簡單,但是好多同學關於這個知識點都是一知半解,沒有真正的去透徹,一問都知道,但在真正引用的時候還會出現很多問題,而百度的時候又會說看不懂,所以我們今天來做一個比較全面的介紹

我們今天講解以簡單明了易看懂為基礎

1.形參和實參是什么


簡單來說,形式參數(形參)就是形式上的參數,沒有確定值,
而實際參數(實參)是實際存在的,已經確定的參數,常量,變量,表達式,都是實參,

最簡單的例子

1 int a=2;  這里的A有了實際的值 為實參
2 int change(int b,int c); **c和b就是形參**。 這里的c和b可以是任意一個值傳遞,為形參
3 int main()
4 {
5      change(1,2); 這樣就是把實參值傳遞給形參,1和2就是實參
6 
7 }

這樣我們能有一個簡單的認識

2.形參和實參的區別

                                      形參

                實參
形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數后則不能再使用該形參變量 實參定義后就會分配內存
形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用 實參出現在主調函數中,進入被調函數后,實參變量也不能使用
形參沒有確定的值 實參在值傳遞給形參的時候,必須要有確定的數值
   

3.形參與實參知識點

3.1實參的值不隨形參的變化而變化

在C語言中,數據傳送是單向的,即只能把實參的值值傳遞給形參,但形參的變化不會改變實參的值,我們可以簡單理解,就相當於把實參的值 復制給了另一個數(形參),而另一個數的改變不會改變原來數(實參)的值,正規來說:他們在內存中位於不同的位置,形參將實參的內容復制一份,在該函數運行結束的時候形參被釋放,而實參內容不會改變。

** 3.2.實參傳遞給形參的參數個數類型和順序都應相同,否則會系統強制轉換,出現數據丟失或者“類型不匹配”的錯誤
比如

loat a=5.34;
void number(int b);
 
int main()
{
    number(a);    //這樣就會出現丟精度現象

}

3.3如果實參是數組名,那么形參傳遞的之就是地址的值

int a[5];
void add(int *b);
int main()
{
    add(a);//這樣就是把數組a的首地址做為形參傳遞
}

在C里面 是無法做到形參改變 實參值同步改變的。如果要用函數改變實參的值,可以用指針作為參數來改變

 

通過直接改變地址存儲值來改變實參


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM