#include<stdio.h>
/*int Swap(int *p1,int *p2)
{
int *tmp;
tmp=p1;
p1=p2;
p2=tmp;
}*/error
//没有解引用(地址交换,地址里的值未交换)
/*void Swap2(int*p1,int*p2)
{
int *tmp;//(未初始化)野指针,悬挂指针(无访问权限)
*tmp=*p1;//*tmp这个地址不能访问
*p1=*p2;
*p2=*tmp;
}*/error
正确示范:
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);//调用Swap函数交换main函数的值
printf("%d %d\n",a,b);
return 0;
}
调用Swap函数交换main的值
最新推荐文章于 2023-11-30 16:04:10 发布
本文探讨了C语言中使用指针进行变量值交换的正确方法。通过对比错误的尝试和正确的实现,揭示了理解指针和解引用的重要性。文章详细解析了如何避免野指针和如何正确地通过指针修改变量值。
1661

被折叠的 条评论
为什么被折叠?



