子函数要改变父函数的的数据必须要传指针和解引用
主函数
#include<stdio.h>
int main()
{
int a=10;
int b=20;
Swap(&a,&b);
printf("%d,%d'\n",a,b);
return 0;
}
误区1:形参a,b和实参a,b两者不可混为一谈
Swap_err1(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
误区2:要交换的实参值并没有改变,只是交换的实参的地址
Swap_err2(int *p1,int *p2)
{
int *temp=p1;
p2=p2;
p2=temp;
}
误区3:野指针:你没有访问权限的地址(指针),这个指针有可能不存在也有可能存在但是你不能访问
Swap(int *p1;int *p2)
{
int *temp;
*temp=*p1;
*p1=*p2;
*p2=*temp;
}
正确写法
Swap(int *p1;int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}