• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > C 語言函數的形參和實參

    C 語言函數的形參和實參

    作者: 時間:2018-07-24 來源:網絡 收藏

    上一個例程中在進行函數調用的時候,不需要任何參數傳遞,所以函數定義和調用時括號內都是空的,但是更多的時候我們需要在主調函數和被調用函數之間傳遞參數。在調用一個有參數的函數時,函數名后邊括號中的參數叫做實際參數,簡稱。而被調用的函數在進行定義時,括號里的參數叫做形式參數,簡稱。我們用個簡單程序例子做說明。

    本文引用地址:http://www.czjhyjcfj.com/article/201807/383551.htm

    unsigned char add(unsigned char x, unsigned char y); //函數聲明

    void main(){

    unsigned char a = 1;

    unsigned char b = 2;

    unsigned char c = 0;

    //調用時,a 和 b 就是,把函數的返回值賦給 c

    //執行完后,c 的值就是 3

    c = add(a, b);

    while(1);

    }

    //函數定義,這里括號中的 x 和 y 就是

    unsigned char add(unsigned char x, unsigned char y){

    unsigned char z = 0;

    z = x + y;

    return z; //返回值 z 的類型就是函數 add 的類型

    }

    這個演示程序雖然很簡單,但是函數調用的全部內容都囊括在內了。主調函數 main 和被調用函數 add 之間的數據通過發生了傳遞關系,而函數運算完后把值傳遞給了變量 c,函數只要不是 void 類型,就都會有返回值,返回值類型就是函數的類型。

    關于形參和實參,還有以下幾點需要注意:

    函數定義中指定的形參,在未發生函數調用時不占內存,只有函數調用時,函數 add中的形參才被分配內存單元。在調用結束后,形參所占的內存單元也被釋放,這個前邊講過了,形參是局部變量。

    實參可以是常量,也可以是簡單或者復雜的表達式,但是要求他們必須有確定的值,在調用發生時將實參的值傳遞給形參。如上邊這個程序也可以寫成:c = add(1, a+b);

    形參必須要指定數據類型,和定義變量一樣,因為它本來就是局部變量。

    實參和形參的數據類型應該相同或者賦值兼容。和變量賦值一樣,當形參和實參出現不同類型時,則按照不同類型數值的賦值規則進行轉換。

    主調函數在調用函數之前,應對被調函數做原型聲明。

    實參向形參的數據傳遞是單向傳遞,不能由形參再回傳給實參。也就是說,實參值傳遞給形參后,調用結束,形參單元被釋放,而實參單元仍保留并且維持原值。



    評論


    技術專區

    關閉
    主站蜘蛛池模板: 绥中县| 阿拉善左旗| 荔波县| 高雄县| 龙游县| 龙南县| 开原市| 郑州市| 东乌珠穆沁旗| 许昌市| 西藏| 呼伦贝尔市| 炉霍县| 永济市| 沙田区| 铁岭县| 惠安县| 周口市| 洛扎县| 喜德县| 万山特区| 孙吴县| 徐州市| 临沭县| 西宁市| 太原市| 班玛县| 东阳市| 临夏县| 谷城县| 临武县| 莫力| 那曲县| 新沂市| 平利县| 南雄市| 五指山市| 怀仁县| 邵阳县| 白朗县| 万山特区|