#include<stdio.h>
- 解引用`
int Swap(int *p1,int *p2)
{
int *tmp;
tmp=p1;
p1=p2;
p2=tmp;
}没有解引用(地址交换,地址里的值未交换)
void Swap(int*p,int*p2)
{
int *tmp;//(未初始化)野指针,悬挂指针(无权访问)
*tmp=*p;//*tmp这个地址不能访问
*p1=*p2;
*p2=*tmp;
}
- 正确写法
void Swap3(int *p1,int *p2)
{
int tmp;
tmp=*p1;
*p1=*p2;
*p2=tmp;
}
int main()
{
int a=10;
int b=20;
Swap3(&a,&b);
printf("%d %d\n",a,b);
return 0;
}