C语言 按引用函数调用

来源:这里教程网 时间:2026-02-16 12:53:21 作者:

C语言 按引用函数调用:在我们讨论按引用函数调用之前,让我们理解我们将在解释这个时使用的术语:

实际参数:函数调用中出现的参数。

形式参数:函数声明中出现的参数。

例如:我们有这样的函数声明:

int sum(int a, int b);

a和b参数是形式参数。

我们正在调用这样的函数:

int s = sum(10, 20); //Here 10 and 20 are actual parametersor int s = sum(n1, n2); //Here n1 and n2 are actual parameters

在本指南中,我们将讨论按引用函数调用方法。如果要阅读按值调用方法,请参考本指南:按值函数调用

让我们回到原点。

什么是按引用函数调用?

当我们通过传递实际参数的地址来调用函数时,这种调用函数的方式称为按引用调用。在按引用调用时,对形式参数执行的操作会影响实际参数的值,因为对值执行的所有操作都存储在实际参数的地址中。它可能听起来很混乱,但下面的例子将清除你的怀疑。

按引用函数调用的示例

让我们举一个简单的例子。阅读以下程序中的注释。

#include <stdio.h>void increment(int  *var){    /* Although we are performing the increment on variable     * var, however the var is a pointer that holds the address     * of variable num, which means the increment is actually done     * on the address where value of num is stored.     */    *var = *var+1;}int main(){     int num=20;     /* This way of calling the function is known as call by      * reference. Instead of passing the variable num, we are      * passing the address of variable num      */     increment(&num);     printf("Value of num is: %d", num);   return 0;}

输出:

Value of num is: 21

示例 2:按引用函数调用 – 交换数字

这里我们使用按引用调用来交换数字。正如您所看到的,在调用swapnum()函数后,变量的值已经更改,因为交换发生在变量num1和num2的地址上。

#include void swapnum ( int *var1, int *var2 ){   int tempnum ;   tempnum = *var1 ;   *var1 = *var2 ;   *var2 = tempnum ;}int main( ){   int num1 = 35, num2 = 45 ;   printf("Before swapping:");   printf("\nnum1 value is %d", num1);   printf("\nnum2 value is %d", num2);   /*calling swap function*/   swapnum( &num1, &num2 );   printf("\nAfter swapping:");   printf("\nnum1 value is %d", num1);   printf("\nnum2 value is %d", num2);   return 0;}

输出:

Before swapping:num1 value is 35num2 value is 45After swapping:num1 value is 45num2 value is 35

相关推荐