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

只需要记住一句话:

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

参照下面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) ;

} 
    
复制代码

打印结果:

 

 

posted @   Love margin  阅读(7518)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示