C語(yǔ)言形參和實(shí)參怎么傳遞

小億
240
2023-11-24 13:41:22

在C語(yǔ)言中,形參和實(shí)參的傳遞是通過(guò)函數(shù)調(diào)用來(lái)實(shí)現(xiàn)的。在調(diào)用函數(shù)時(shí),需要提供實(shí)參(也稱為實(shí)際參數(shù)),這些實(shí)參的值會(huì)被傳遞給函數(shù)的形參(也稱為形式參數(shù))。

一般來(lái)說(shuō),有以下兩種方式來(lái)傳遞實(shí)參給形參:

  1. 值傳遞:將實(shí)參的值復(fù)制給形參,函數(shù)中對(duì)形參的修改不會(huì)影響到實(shí)參的值。

示例代碼:

#include <stdio.h>

void changeValue(int x) {
    x = 10;  // 修改形參的值
}

int main() {
    int num = 5;  // 實(shí)參的值
    changeValue(num);  // 傳遞實(shí)參給形參
    printf("num = %d\n", num);  // 輸出實(shí)參的值,仍然為 5
    return 0;
}
  1. 地址傳遞:將實(shí)參的地址傳遞給形參,通過(guò)指針訪問(wèn)實(shí)參的值,函數(shù)中對(duì)形參的修改會(huì)影響到實(shí)參的值。

示例代碼:

#include <stdio.h>

void changeValue(int *x) {
    *x = 10;  // 通過(guò)指針修改實(shí)參的值
}

int main() {
    int num = 5;  // 實(shí)參的值
    changeValue(&num);  // 傳遞實(shí)參的地址給形參
    printf("num = %d\n", num);  // 輸出實(shí)參的值,被修改為 10
    return 0;
}

需要注意的是,指針變量作為形參時(shí),可以使用地址傳遞來(lái)修改實(shí)參的值。而對(duì)于其他非指針類型的變量,只能通過(guò)值傳遞來(lái)傳遞實(shí)參給形參。

0