如何使用指针交换两个int型变量
1、由于指针的特殊性,定义第三个指针来交换指针不是很方便。所以我们直接来用swap函数来交换指针。

2、先去定义两个变量a=1,b=0。
然后定义两个指针*p1,*p2,分别代表a,b的地址。
但是新手经常讲程序写成如图,这样是错误的。

3、出错是因为在a=*p2时,已经将a的值变为b了。b=*p1时(*p1=&a),其实是将已经变为b的a赋给了b,所以b还是原来的数值。这里导致b无法交换为a。

4、所以当必须使用指针来交换时,我们不妨去交换指针。也就是使用swap函数去交换*p1,*p2。这样不会出现上面的问题。

5、下面是swap函数的源代码:
int swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
注意这里定义的是指针变量

6、源代码如下:
#include<stdio.h>
main()
{
int swap(int *a,int *b);
int a=1,b=0,*p1,*p2;
p1=&a;
p2=&b;
swap(p1,p2);
printf("%d,%d",a,b);
}
int swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:83
阅读量:138
阅读量:73
阅读量:157
阅读量:170