写一个交换函数 错误示例与正确做法
错误代码一
void Swap_err1(int a,int b)
int tmp = a;
a = b;
b = tmp;
}
没有传指针
错误代码二
void Swap_err2(int *p1,int *p2)
{
int *tmp = p1;
p1 = p2;
p2 = tmp;
}
没有解引用
错误代码三
void Swap_err3(int *p1,int *p2)
{
int *tmp;
*tmp = *p1;//崩溃
*p1 = *p2;
*p2 = *tmp;
野指针 会导致崩溃
正确代码
void Swap(int *p1,int *p2)//ok
{
int tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
#include<stdio.h>
int main()
{
void Swap(int* p1, int* p2);
int a = 10;
int b = 20;
Swap(&a,&b);
printf("a=%d\n,b=%d\n",a,b);
return 0;
}
用主函数进行测试
测试结果如下
总结 要点 1.传指针 2.进行解引用