首页 > 代码库 > 交换指针
交换指针
1。今天早上突发奇想,复习一下指针交换,由于一时的忘记,准备写到这里,以备以后复习。
首先指针的交换,必须传地址,而非传值。(你不相信,一会看结果)
下面小小的函数来实现
1 void swap(int *a,int *b) 2 { 3 int tmp = *a; 4 *a = *b; 5 *b = tmp; 6 }
2.接下来通过一个Demo来进行验证。同时我也打印了内存地址,你一看就明白了。
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int x = 12,y = 23; 7 int *a,*b; // 指针形式 "int" + "*" +"变量名" 8 a = &x; 9 b = &y; //*a = &x *b = &y 10 11 printf("%X %X\n",a,b); 12 printf("%d %d\n",*a,*b); 13 printf("%d %d\n",x,y); 14 int t; 15 t = *a; 16 *a = *b; 17 *b = t; 18 19 printf("%X %X\n",a,b); 20 printf("%d %d\n",*a,*b); 21 printf("%d %d\n",x,y); 22 }
如果你懒的打开编辑器,我已经把结果给你运行了,看图:
好了说明问题了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。