传值引用和调用引用的区别

时间:2022-09-30 15:57:30

只需要记住一句话:

传值引用一般就是生成一个临时对象,而引用调用是调用参数本身。

参照下面C语言代码理解:

在 test.h文件里实现两个方法

 
 

 #include <stdio.h>

/*交换两个数*/
void exchange(int x,int y){
    int temp;
    temp = x;
    x = y;
    y = temp;
    printf("交换后第一个数:\n%d\n交换后第二个数:\n%d\n",x,y);
} 

/*交换两个数的指针*/
void exchangeAddress(int *x,int *y){
    int temp = *x;
    *x = *y;
    *y = temp;
    printf("交换后第一个数:\n%d\n交换后第二个数:\n%d\n",*x,*y);
} 

在 test.c文件里调用这两个方法如下:

#include <stdio.h>
#include "test.h"

int  main(){
    int a, b;
    printf("请输入a: \n");
    scanf("%d",&a);
    
    printf("请输入b: \n");
    scanf("%d",&b);

    exchange(a,b);
    printf("交换后:\n a=%d\n b=%d\n",a,b) ;
    
    exchangeAddress(&a,&b);
    printf("交换地址:\n a=%d\n b=%d\n",a,b) ;

} 
    

打印结果:

 

传值引用和调用引用的区别