引用传递vs值传递vs指针传递

今天突然想到这三种参数传递方式的调用,主要忘记了三种传递方式的格式什么区别,写了写,本来写了一个c版本的,发现c竟然没有引用传递,好吧,c++里有,真是没有想到。

附上代码:

#include<iostream>

using namespace std;

void f1(int &a,int &b)
{
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
}

void f2(int a,int b)
{
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
}


void f3(int *a,int *b)
{
    int tmp;
    tmp=*a;
    *a=*b;
    *b=tmp;
}

int main()
{
    int a=1,b=2;
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    f1(a,b);
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    f2(a,b);
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    f3(&a,&b);
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/GODYCA/p/2838944.html