#include<stdio.h>
void exchange(int* px, int* py)
{
int z = *px;
*px = *py;
*py = z;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
exchange(&a, &b);
printf("%d %d", a, b);
return 0;
}
书写这段代码时,很容易犯的错误是直接使用形参进行交换。需要注意的是,当我们需要改变实参时(例如这段代码中,交换a,b两个变量的值),需让函数与实参产生直接联系(此处采用了指针取地址的方式)。
#include<stdio.h>
int Add(int x, int y)
{
return (x + y);
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
int num = Add(a, b);
printf("%d\n", num);
return 0;
}
可能有读者与加法函数等产生混淆,此处又以加法函数为例,需注意在加法函数中,通过实参赋值给形参,形参相加得到新的值,并不需要改变实参,故无需使用指针。