形參與實參必須型別一致、個數對應、順序一致,否則會產生不可預期結果。C 語言幾乎無執行期錯誤檢查,程式設計師需自行確保正確性。
| 機制 | 說明 | 影響 |
|---|---|---|
| 值呼叫 | 將實參值的副本複製給形參 | 函數內修改形參不影響實參原變數 |
| 參考呼叫 | 將實參位址複製給形參(指標) | 函數內透過位址可修改實參原變數 |
C 語言預設採用值呼叫,若需修改實參,必須傳遞指標(位址)。
void sqr(int x) {
x = x * x; // 僅修改區域副本
}
void main() {
int t = 10;
sqr(t);
printf("%d %d", t, t); // 輸出 100 10
}
傳入 sqr 的是 t 的值(10)的副本,函數內 x 變為 100,但 main 中的 t 保持 10 不變。記住:函數拿到的只是參數值的複本,內部變動無法回傳給呼叫端變數。
後續章節將詳細介紹指標作函數參數的寫法與應用場景。