值传递:形参不会修饰实参;
地址传递:形参会修饰实参;
引用传递:形参会修饰实参;可以简化指针修改实参。
//值传递
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
}

本文介绍了三种常见的函数参数传递方式:值传递、地址传递和引用传递。值传递中,形参不会改变实参的值;地址传递和引用传递则允许形参直接修改实参。通过示例代码展示了每种方式如何交换两个变量的值,其中引用传递简化了指针的使用,使得代码更简洁。

被折叠的 条评论
为什么被折叠?



