首頁 >後端開發 >C#.Net教程 >c語言自訂函數

c語言自訂函數

王林
王林原創
2020-05-12 13:15:406014瀏覽

c語言自訂函數

C語言無參函數的定義

如果函數不接收使用者傳遞的數據,那麼定義時可以不帶參數。如下所示:

dataType  functionName(){
    //body
}

dataType 是傳回值類型,它可以是C語言中的任意資料類型,例如 int、float、char 等。

functionName 是函數名,它是標識符的一種,命名規則和標識符相同。函數名後面的括號( )不能少。

body 是函數體,它是函數需要執行的程式碼,是函數的主體部分。即使只有一個語句,函數體也要被{ }包圍。

如果有回傳值,在函數體內使用 return 語句傳回。 return 出來的資料的型別要跟 dataType 一樣。

例如,定義一個函數,計算從1 加到100 的結果:

#include <stdio.h>

int sum(){
    int i, sum=0;
    for(i=1; i<=100; i++){
        sum+=i;
    }
    return sum;
}

int main(){
    int a = sum();
    printf("The sum is %d\n", a);
    return 0;
}

運行結果:

The sum is 5050

函數不能巢狀定義,main 也是一個函數定義,所以要將sum 放在main 外面。函數必須先定義後再使用,所以 sum 要放在 main 前面。

注意:main 是函數定義,不是函數呼叫。當可執行檔案載入到記憶體後,系統從 main 函數開始執行,也就是說,系統會呼叫我們定義的 main 函數。

無傳回值函數

有的函數不需要傳回值,或傳回值型別不確定(很少見),那麼可以用 void 表示,例如:

void hello(){
    printf ("Hello,world \n");
    //没有返回值就不需要 return 语句
}

void是C語言中的一個關鍵字,表示“空類型”或“無類型”,絕大部分情況下也意味著沒有return 語句。

C語言有參函數的定義

如果函數需要接收使用者傳遞的數據,那麼定義時就要帶上參數。如下圖所示:

dataType  functionName( dataType1 param1, dataType2 param2 ... ){
    //body
}

dataType1 param1, dataType2 param2 ...是參數列表。函數可以只有一個參數,也可以有多個,多個參數之間由,分隔。參數本質上也是變量,定義時要指明類型和名稱。與無參函數的定義相比,有參函數的定義只是多了一個參數列表。

資料經由參數傳遞到函數內部處理,處理完成以後再透過回傳值告知函數外部。

計算從m 加到n 的結果:

#include <stdio.h>

int sum(int m, int n){
    int i, sum=0;
    for(i=m; i<=n; i++){
        sum+=i;
    }
    return sum;
}

int main(){
    int begin = 5, end = 86;
    int result = sum(begin, end);
    printf("The sum from %d to %d is %d\n", begin, end, result);
    return 0;
}

運行結果:

The sum from 5 to 86 is 3731

定義sum() 時,參數m、n 的值都是未知的;當呼叫sum() 時,將begin、end 的值分別傳遞給m、n,這和給變數賦值的過程是一樣的,它等價於:

m = begin;
n = end;

推薦教學: c語言教學

以上是c語言自訂函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn