C++函数参数传递三种方式
值传递
特点:
函数调用时将实参的值复制给形参,形参做任何改变不影响实参的值
void swap(int a, int b)
{
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int x = 20;
int y = 10;
swap(x, y); //值传递 所以x,y的值不能交换
return 0;
}
引用传递
引用可以说是给变量起别名,引用做形参相当于直接访问实参。
void swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int x = 20;
int y = 10;
swap(x, y); //引用传递参数 所以x,y的值可以交换
return 0;
}
指针传递
实参和形参指向同一片内存。形参改变,实参的值同样改变
#include <iostream>
using namespace std;
void swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int x = 20;
int y = 10;
swap(&x, &y); //指针传递参数 所以x,y的值交换
printf("x = %d,y = %d\r\n", x, y);
return 0;
}