8、黑馬程序員-C語言函數

------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------

一、基本概念


1>什麼是函數

任何一個C語言程序都是由一個或者多個程序段(小程序)構成的,每個程序段都有自己的功能,我們一般稱這些程序段爲“函數”。所以,你可以說C語言程序是由函數構成的。

2>函數名

一般來說,我們會將不同的功能交給不同的函數去實現。爲了方便調用和區分這些函數,我們需要爲每一個函數都起一個唯一的名稱,函數的命名必須按照標識符命名規則。利用函數名就可以調用到對應的函數。

二、函數的定義

定義函數的目的就是爲了寫清楚你這個函數是幹啥用的,裏面包含了哪些代碼。函數的定義格式如下:
返回值類型  函數名(形式參數列表)
{
    函數體
}

三、形式參數和實際參數

1>基本概念

形式參數:在定義函數時,函數名後面的小括號()中定義的變量稱爲形式參數,簡稱形參
實際參數:在調用函數時傳入的值稱爲實際參數,簡稱實參

2>調用函數時傳遞的實參個數 必須和 函數的形參個數必須保持一致
3>當使用基本數據類型作爲實參時,實參和形參之間只是值傳遞,修改形參的值並不影響到實參
4>函數可以沒有形參

四、返回值類型
1>如果沒有返回值,應該用void表示返回值類型;如果一個函數沒有返回值,最後面的return語句可以省略
2>如果一個函數沒有明確寫出返回值類型,那麼代表這個函數的返回值類型是int
3>如果有返回類型,也可以不返回(不推薦這麼寫)

五、函數定義注意點
1>函數名不能重複
2>每一個函數都應該獨立定義,不能嵌套定義

如果有函數的聲明,沒有函數的定義
1> 編譯可以通過,因爲編譯器只會檢測語法合不合理,並不會檢測函數有沒有定義
2> 鏈接報錯,因爲鏈接的時候會檢測函數是否定義

六、函數程序

1、簡單的函數調用
#include <stdio.h>

int printLine()
{
    printf("-------------\n");
    return 0;
}

int average(int num1, int num2)
{
    return (num1 + num2)/2;
}

int main()
{
    //printLine();
    
    int a = 10;
    int b = 9;
    int c = average(a, b);
    printf("c is %d\n", c);
    
    int a1 = 11;
    int b1 = 20;
    int d = average(a1, b1);
    printf("d is %d\n", d);
    return 0;
}

2、遞歸操作
//遞歸舉例
#include<stdio.h>
int fun(int n)
{
    if (n==1)
        return 1;
    else
        return n*fun(n-1);
}
void main()
{
    int n;
    scanf("%d", &n);
    printf("the n! is %d: \n",fun(n));
}

------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章