定义一个函数Swap,功能为交换两个变量的值。
不用指针直接交换(错误)。
例:
#include<stdio.h>
void Swap_err(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int a=10;
int b=20;
Swap_err(a,b);
printf("%d,%d\n",a,b);
return 0;
}
运行结果:
运用指针在定义函数中交换两个变量的值。(正确)
例:
#include<stdio.h>
void Swap(int *p1,int *p2)
{
int tmp ;
tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
int main()
{
int a=10;
int b=20;
Swap(&a,&b);//因为在定义函数中运用了指针,所以传入的形参应为地址“&”。
printf("%d,%d\n",a,b);
return 0;
}
运行结果:
总结:子函数的改变要想影响到父函数,必须传指针,必须解引用!