您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
042第八章 指针02(新版) 指针交换
发布时间:2021-05-02 18:26:05编辑:雪饮阅读()
指针间的交换需要依赖一个第三者,一个临时的指针变量。如果没有看指针的基本概念,只把指针当作普通变量看待,或者像是指针交换,应该能轻松看懂。但是有时候你看了指针的基本概念之后反而,会发现指针的交换,实质还是“互相覆盖”,其实这是一个错误的概念,因为你没有考虑到指针交换时候对于某个指针原本链接到一个变量地址的中断这个概念。
那么这里可以看下如下实例:
#include <stdio.h>
int main()
{
int *p1,*p2,*p,a,b;
scanf("%d %d",&a,&b);
p1=&a;
p2=&b;
if(a<b){
//p指向p1,得到a的地址
p=p1;
//p1指向p2,得到b的地址,此时原本p1指向a的地址链接断开
p1=p2;
//p2指向p,得到a的地址,此时原本p2指向b的地址链接断开
p2=p;
}
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
}
其编译运行结果如:
这里编译运行时候不要以为卡住了,因为这里没有输出“请输入xxx”之类提示,只要光标在闪烁时候也可能是已经编译完成,正在等待你输入。
关键字词:指针,指针交换