站長資訊網
        最全最豐富的資訊網站

        C語言函數基礎知識有哪些?


        C語言函數基礎知識有哪些?

        C語言函數基礎知識有哪些?

        C語言函數基礎知識有:

        一、定義、聲明和調用

        函數: 一段可以重復使用的代碼
        函數三要素: 返回值 函數名 函數形參列表
        函數聲明: 包含函數的三要素
        函數定義: 函數的具體實現
        返回值: 如果一個函數沒有返回值,則寫成 void
        函數形參列表: 如果沒有參數,寫成空 ,變量之間用逗號隔開

        二、函數聲明:

        函數聲明時,形參可以不加變量名,只有類型也可以

        int add(int, int);


        三、函數定義:

        函數定義時,形參可以必須要有變量名

        int add(int a, int b) { int sum = a + b; return sum; }


        四、函數調用 :

        如果函數定義在主函數上方,可以不寫函數聲明。

        如果函數定義在主函數下方,必須在主函數上方寫好聲明

        int main() { int a = 10; int b = 20; // 函數調用的時候,傳的參數叫實參 int sum= add(a, b); printf (“sum = %dn”, sum); return 0; }


        五、函數名

        函數名是函數的入口地址

        定義一個函數指針:

        int (*p)(int a.int b) =add;

        六、遞歸函數

        一個函數在它的函數體內調用它自身稱為遞歸調用,這種函數稱為遞歸函數。執行遞歸函數將反復調用其自身,每調用一次就進入新的一層。

        用遞歸計算 n!。階乘 n! 的計算公式如下:

        根據公式編程:

        long factorial(int n) { long result; if(n ==0 || n ==1) { result = 1; } else { result = factorial(n-1) * n; // 遞歸調用 } return result; }

        這是一個典型的遞歸函數。調用factorial后即進入函數體,只有當 n== 0 或 n==1 時函數才會執行結束,否則就一直調用它自身。

        由于每次調用的實參為 n-1,即把 n-1 的值賦給形參 n,所以每次遞歸實參的值都減 1,直到最后 n-1 的值為 1 時再作遞歸調用,形參 n 的值也為1,遞歸就終止了,會逐層退出。

        例如求 5!,即調用factorial(5)。當進入factorial函數體后,由于 n=5,不等于0或1,所以執行result = factorial(n-1) * n;,即result = factorial(5-1) * 5;,接下來也就是調用factorial(4)。這是第一次遞歸。

        進行四次遞歸調用后,實參的值為 1,也就是調用factorial(1)。這時遞歸就結束了,開始逐層返回。factorial(1) 的值為 1,factorial(2) 的值為 12=2,factorial(3) 的值為 23=6,factorial(4) 的值為 64=24,最后返回值 factorial(5) 為 245=120。

        注意:

        1.為了防止遞歸調用無終止地進行,必須在函數內有終止遞歸調用的手段。常用的辦法是加條件判斷,滿足某種條件后就不再作遞歸調用,然后逐層返回。

        2.遞歸調用不但難于理解,而且開銷很大,如非必要,不推薦使用遞歸。很多遞歸調用可以用迭代(循環)來代替。

        推薦教程:《C視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品被窝福利一区| 欧美亚洲综合免费精品高清在线观看 | 精品亚洲一区二区三区在线播放| 亚洲精品无码成人AAA片| 国产精品美女久久久久av爽| 国产精品91在线| 日产精品久久久久久久| 午夜成人精品福利网站在线观看 | 少妇人妻精品一区二区三区| 久热精品视频第一页| 国产精品H片在线播放| 99国产精品久久久久久久成人热| 亚洲AV永久无码精品水牛影视| 人妻精品久久久久中文字幕| 国内精品久久久久久久久| 丝袜美腿国产精品视频一区| 91老司机深夜福利精品视频在线观看| 无码囯产精品一区二区免费| 亚洲国产精品嫩草影院久久| 人人妻人人澡人人爽精品欧美 | 国产精品国产三级国产普通话| 亚洲av永久无码精品网站 | 国产精品成人无码久久久久久 | 国产原创精品视频| 精品久久久久久久久午夜福利| 亚洲av永久无码精品秋霞电影影院 | 国产中老年妇女精品| 中文字幕久久精品| 蜜臀AV无码国产精品色午夜麻豆| 精品国产黑色丝袜高跟鞋| 国产精品一区二区三区99| 国产成人精品在线观看| 1区1区3区4区产品芒果精品| 日韩精品成人一区二区三区| 女人香蕉久久**毛片精品| 国内精品久久九九国产精品| 国产精品视频网站| 久久精品嫩草影院| 色播精品免费小视频| 国产精品99久久久久久猫咪| 国产精品免费在线播放|