C語(yǔ)言中disp函數(shù)的參數(shù)傳遞方式

小樊
82
2024-09-05 18:56:11

在C語(yǔ)言中,disp函數(shù)的參數(shù)傳遞方式取決于函數(shù)的定義

  1. 值傳遞(Pass by Value):在這種方式下,函數(shù)接收的是實(shí)參的副本。對(duì)副本進(jìn)行修改不會(huì)影響到原始變量。例如:
#include<stdio.h>

void disp(int a) {
    printf("Value of a inside the function: %d\n", a);
}

int main() {
    int x = 10;
    disp(x); // 傳遞x的副本
    printf("Value of x after calling the function: %d\n", x);
    return 0;
}
  1. 指針傳遞(Pass by Pointer):在這種方式下,函數(shù)接收的是指向?qū)崊⒌闹羔?。通過指針,可以修改實(shí)參的值。例如:
#include<stdio.h>

void disp(int *a) {
    printf("Value of a inside the function: %d\n", *a);
    *a = 20; // 修改實(shí)參的值
}

int main() {
    int x = 10;
    disp(&x); // 傳遞x的地址
    printf("Value of x after calling the function: %d\n", x);
    return 0;
}
  1. 引用傳遞(Pass by Reference):雖然C語(yǔ)言沒有內(nèi)置的引用類型,但可以通過指針實(shí)現(xiàn)類似的功能。在這種方式下,函數(shù)接收的是指向?qū)崊⒌闹羔樀闹羔?。通過指針的指針,可以修改指針?biāo)赶虻闹?。例如?/li>
#include<stdio.h>

void disp(int **a) {
    printf("Value of a inside the function: %d\n", **a);
    **a = 20; // 修改指針?biāo)赶虻闹?/span>
}

int main() {
    int x = 10;
    int *ptr = &x;
    disp(&ptr); // 傳遞指向x的指針的地址
    printf("Value of x after calling the function: %d\n", x);
    return 0;
}

請(qǐng)注意,這些示例僅適用于整數(shù)類型。對(duì)于其他數(shù)據(jù)類型,只需相應(yīng)地更改函數(shù)參數(shù)和變量類型即可。

0