首页 > 代码库 > 交换指针

交换指针

1。今天早上突发奇想,复习一下指针交换,由于一时的忘记,准备写到这里,以备以后复习。

  首先指针的交换,必须传地址,而非传值。(你不相信,一会看结果)

下面小小的函数来实现

1 void swap(int *a,int *b)
2 {
3         int tmp = *a;
4         *a = *b;
5         *b = tmp;
6 }
View Code

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 }
View Code

如果你懒的打开编辑器,我已经把结果给你运行了,看图:

 

 

好了说明问题了