传值、传址与引用的区别

一直都有点分不清传值和传址,也不知道什么叫引用,所以经常写交换函数都出错,今天就把代码贴出来,希望起码swap函数不会再出错


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 程序名:  Swap.cpp
* 功  能:  举例自定义Swap函数,
            以区分传值、传址与引用的区别
* 运行结果:a=4 b=3
* 结    论: 指针是变量,本身占内存,储存的是实参的地址
            引用是被引用者的别名,即同一个东西,并没有新占内存
* 设 计 者:***             * 时 间: 2016-9-21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

/*void Swap(int x,int y)    //传值调用
{
    int t=x; x=y; y=t;      //仅交换形参的值
}*/

/*void Swap(int *x,int *y)
{
    int *t;
    t=x; x=y; y=t;          //形参的值为实参的地址,仅交换形参的值而实参不变化
}*/

/*void Swap(int *x,int *y)  //传址调用
{
    int t=*x; *x=*y; *y=t;  //通过实参的地址交换了实参的值
}*/

void Swap(int &x,int &y)    //&x是引用,即x是a的别名,相当于用a在直接操作
{
    int t=x; x=y; y=t;
}

int main()
{
    int a(3),b(4);
    Swap(a,b);
    cout<<"a="<<a<<" "<<"b="<<b<<endl;
    return 0;
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值