C++ 函数参数

指针调用

向函数传递参数的指针调用方法,把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

#include <iostream>
using namespace std;

void swap(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main()
{
    int a = 10;
    int b= 20;
    
    //交换前
    cout<<"a="<<a<<" "<<"b="<<b<<endl;
    swap(&a,&b);
    //交换后
    cout<<"a="<<a<<" "<<"b="<<b<<endl;
    return 0;
}

运行结果

 

 引用调用

该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

#include <iostream>
using namespace std;

void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

int main()
{
    int a = 10;
    int b= 20;
    
    //交换前
    cout<<"a="<<a<<""<<"b="<<b<<endl;
    swap(a,b);
    //交换后
    cout<<"a="<<a<<""<<"b="<<b<<endl;
    return 0;
}

运行结果:

 

 值传递调用

该方法是把实参复制给形参,在这种情况下,修改函数内的形参是不会影响实际参数的。

#include <iostream>
using namespace std;

void swap(int a, int b)
{
    int temp = a;
    a = b;
    b = temp;
}

int main()
{
    int a = 10;
    int b= 20;
    
    //交换前
    cout<<"a="<<a<<""<<"b="<<b<<endl;
    swap(a,b);
    //交换后
    cout<<"a="<<a<<""<<"b="<<b<<endl;
    return 0;
}

运行结果:

posted on 2020-01-10 11:09  缘随风烬  阅读(692)  评论(0编辑  收藏  举报