#include<stdio.h>
void Swap(int *x, int *y)
{
int temp = 0;
temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int a = 2;
int b = 3;
Swap(&a, &b);
printf("a=%d,b=%d\n", a, b);
return 0;
}
易错点:如果写成
void Swap(int x, int y)
{
int temp = 0;
temp = x;
x = y;
y = temp;
}
这样,是错误的;
本题要求交换两个数的值,也就是要改变变量的值,而调运的swap子函数需要访问并修改主调函数变量的值,说明这种方式是传址调用。给出的错误示例是传值调用,传值调用是指在调用参数时,不是对原参数进行操作,而是创建参数的拷贝并对进行操作,这种调用有利于保护数据,即不改变变量的值时用传值调用。
**注:**传值方式下的实参是数值,对应的形参是普通变量;传地址方式下的实参是地址,对应的形参是指针变量