C++笔记之值传递,地址传递,引用传递

值传递:形参不会修饰实参;

地址传递:形参会修饰实参;

引用传递:形参会修饰实参;可以简化指针修改实参。

//值传递
void SwapValue(int a,int b) 
{
    int temp = a;
    a = b;
    b = temp;
}
//地址传递
void SwapValuePtr(int *a,int *b) 
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
//引用传递
void SwapValuePtrP(int &a,int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

int main()
{
    int a = 10;
    int b = 20;
    SwapValue(a,b);
    std::cout << "a= " << a << " b= " << b << std::endl; //打印为 a= 10 b= 20

    int a1 = 10;
    int b1 = 20;
    SwapValuePtr(&a1,&b1);
    std::cout << "a= " << a1 << " b= " << b1 << std::endl; //打印为 a= 20 b= 10

    int a2 = 10;
    int b2 = 20;
    SwapValuePtrP(a2,b2);
    std::cout << "a= " << a2 << " b= " << b2 << std::endl; //打印为 a= 20 b= 10
}

你可能感兴趣的:(Linux,C/C++,c++)