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

C語言函數調用與參數傳遞:形式參數、實際參數與值傳遞機制

     編輯:C 語言基礎

4.3.1 形式參數與實際參數

  • 形式參數(形參):函數定義時括號內的參數,作用等同於函數內部的區域變數。定義位置在函數名之後、函數體大括號之前。
  • 實際參數(實參):函數調用時提供的引數,可以是常數、變數、運算式等。

關鍵要求: 形參與實參的類型、個數、順序必須一一對應。C 語言不進行執行時類型檢查或範圍檢測,程式設計師必須自行確保正確性。

4.3.2 值傳遞與參考傳遞

傳遞方式機制對實參的影響C 語言預設
值傳遞將實參的值複製給形參形參變化不影響實參是(除少數情況)
參考傳遞將實參的位址複製給形參形參變化影響實參需手動實作(傳指標)

值傳遞範例

void sqr(int x) {
    x = x * x;  // 僅修改區域副本
}

void main() {
    int t = 10;
    sqr(t);
    printf("%d %d", t, t); // 輸出:10 10
}

執行結果:100 10(若函數內印出 x)。實參 t 的值保持不變,因為傳遞的是副本。

如何實現參考傳遞效果

雖然 C 預設值傳遞,但可透過傳遞指標模擬參考傳遞:

void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

void main() {
    int x = 5, y = 10;
    swap(&x, &y); // 傳遞位址
    // x=10, y=5
}

這是 C 語言中實現「輸出參數」或修改實參的標準做法。

核心提醒

傳給函數的只是參數值的副本。函數內部的所有變化均無法影響調用時使用的原始變數——除非你傳遞的是它們的位址。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved