1 传值
1.1 概念
void Swap(int left, int right)
{
int temp = left;
left = right;
right = temp;
}
int main()
{
int a = 10;
int b = 20;
cout << a << " " << b << endl;
Swap(a, b);
cout << a << " " << b << endl;
return 0
}
传值是指形参将来接受到的是实参的一份临时拷贝,在函数中如果对形参进行改变,不会影响外部实参。因此上述进行Swap函数后,a,b的值未发生交换。
1.2 优点
1.代码可读性高、较安全
2.在不想通过形参改变外部的实参的场景下,可用传值
1.3 缺点
1.传参效率低,浪费空间(传递的是实参的副本,如果实参特别大,将会浪费大量空间)
2.用户想要通过形参改变外部实参,做不到
2 传址
2.1 概念
void Swap(int* left, int* right)
{
int temp = *left;
*left = *right;
*right = temp;
}
int main()
{
int a = 10;
int b = 20;
cout << a << " " << b << endl;
Swap(&a, &b);
cout << a << " " << b