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

Posted lovemargin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传值引用和调用引用的区别相关的知识,希望对你有一定的参考价值。

只需要记住一句话:

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

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

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


 #include <stdio.h>

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

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

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

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

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

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

} 
    

打印结果:

 

技术图片

 

以上是关于传值引用和调用引用的区别的主要内容,如果未能解决你的问题,请参考以下文章

值类型和引用类的区别是啥?

Dubbo——服务调用、服务暴露、服务引用过程

值传递和引用传递的区别

php中传值与传引用的区别?

谁能说一下C语言参数传值和传引用是啥概念,谢谢!:)?

理解C++传值传址引用调用