函数传参的三种方式
1、按值传递,传递时形参和实参各占一个独立空间。
2、地址传递,是把实参的储存地址传送给形参。
3、引用传递,是以引用为实参的别名,和实参是同一个变量。
示例代码
按值传递#include
void swap1(int x, int y)//定义中的x,y变量是swap函数的两个形参
{
int tmp;
tmp = x;
x = y;
y = tmp;
printf("x=%d,y=%d\n", x, y);
}
int main()
{
int a = 2;
int b = 3;
swap1(a, b);//a,b变量为swap函数的实际参数
printf("a=%d,b=%d", a, b);
return 0;
}
地址传递void swap2(int *px, int *py)
{
int tmp;
tmp = *px;
*px = *py;
*py = tmp;
printf("px=%d,py=%d\n", *px, *py);
}
int main()
{
int a = 2;
int b = 3;
swap2(&a, &b);/*调用了swap函数,同样也有隐含动作px=&a;py=&b;*/
printf("a=%d,b=%d", a, b);
return 0;
}
引用传递#include
void swap3(int &x,int &y)
{
int tmp = x;
x = y;
y = tmp;
printf("x=%d,y=%d\n", x, y);
}
int main()
{
int a = 2;
int b = 3;
swap3(a, b);//调用方式与传值一样
printf("a=%d,b=%d", a, b);
system("pause");
return 0;
}
推荐教程:《C#教程》