【C++】传递方式

一、值传递

值传递不改变实参的值

void swap(int a, int b){
    int temp = a;
    a = b;
    b = temp;
    cout << "swap01 a = " << a <<endl;
    cout << "swap01 b = " << b <<endl;
}

int main(){
    int a = 10;
    int b = 20;
    swap(a,b);
    cout << "a = " << a <<endl;
    cout << "b = " << b <<endl;
}

输出结果为:

二、地址传递

 地址传递可改变实参的值

void swap(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
    cout << "swap02 a = " << *a << endl;
    cout << "swap02 b = " << *b << endl;
}
int main()
{
        int a = 10;
        int b = 20;
        swap(&a, &b);
        cout << "a = " << a << endl;
        cout << "b = " << b << endl;
    
}

 输出结果为:

三、引用传递

应用传递可改变实参的值。

void swap03(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
    cout << "swap03 a = " << a << endl;
    cout << "swap03 b = " << b << endl;    
}
int main(){
    int a = 10;
    int b = 20;
    swap(a, b);
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
}

输出结果为:

 

Guess you like

Origin blog.csdn.net/qq_26082507/article/details/120385067
Recommended