C语言教程:通过值和引用函数

将参数值或数据传递给C语言函数有两种方法:通过值调用和通过引用调用。原始值在通过值调用时不修改,但通过引用调用时,在函数中可进行修改。

C语言教程:通过值和引用函数

下面将分别讲解如何通过值调用和通过引用调用,并用使用示例逐个调用演示执行。

通过值调用

在通过值调用函数时,原始值不被修改。

在通过值调用时,传递给函数的值由函数参数在堆栈内存位置中本地存储。如果更改函数参数的值,则仅对当前调用函数中的值进行临时更改。它不会改变调用者方法(如:main())中的变量的值。即:函数只是使用参数值的一个副本,函数执行完成副本删除,而原始值不会有任何影响。

我们试着通过下面的例子来了解C语言中的通过值调用的概念,首先创建一个工程:function-call-by-value-reference,并在这个工程下创建一个源文件:call-by-value.c,其代码如下所示-

#include   

void change(int num) {
    printf("Before adding value inside function num=%d n", num);
    num = num + 10;
    printf("After adding value inside function num=%d n", num);
}

int main() {
    int x = 10;
    // 更新之前参数x的值
    printf("Before function call x=%d n", x);
    change(x); // passing value in function  
    // 更新之后参数x的值
    printf("After function call x=%d n", x);

    return 0;
}