首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言自訂函數完整指南:定義語法、參數傳遞與回傳值機制

     編輯:關於C語言

1. 函數概念

函數是一個「黑盒子」:輸入資訊(參數),內部處理,輸出結果(回傳值)。

  • 使用參數將值傳入函數
  • 使用 return 將值回傳給呼叫者

2. 函數定義一般形式

舊式定義(K&R 風格,已淘汰)

型別 函數名(參數列表)
參數宣告
{
    // 函數主體
    return(運算式);
}

標準 ANSI C 定義(現代風格)

回傳型別 函數名(參數型別 參數名, ...)
{
    // 函數主體
    return 運算式;
}

3. 範例解析

範例 1:基本呼叫與形式/實際參數

void try_func(int i)  // i 為形式參數
{
    // 處理邏輯
}

int main(void)
{
    int number = 1;     // number 為實際參數
    try_func(number);   // 傳值呼叫
    return 0;
}

實際參數可以是常數、變數或運算式。形式參數與實際參數佔用不同記憶體位置,函數內修改形式參數不影響實際參數(傳值呼叫)。

範例 2:參數修改不影響呼叫端

void try_func(int base)
{
    base = base + 5;  // 僅修改區域副本
}

int main(void)
{
    int number = 1;
    try_func(number);
    // number 仍為 1
    return 0;
}

範例 3:帶回傳值的函數


float duff(int k);  // 函數原型宣告

int main(void)
{
    int n = 10;
    float q = duff(n);  // 接收回傳值
    return 0;
}

float duff(int k)     // 函數定義
{
    float tor = k * 1.5;
    return tor;       // 回傳 float 值
}

在呼叫端需先以函數原型宣告回傳型別與參數型別,編譯器才能正確檢查呼叫語法。

4. 關鍵觀念總結

  1. 傳值呼叫:實際參數值複製給形式參數,函數內修改不影響原變數。
  2. 函數原型:建議放在標頭檔或檔案開頭,便於編譯器型別檢查。
  3. 回傳值:使用 return 陳述式,型別必須與宣告一致。
  4. 遞迴:函數可直接或間接呼叫自身,需設定終止條件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved