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中文網其他相關文章!