当前位置:   article > 正文

C语言之用指针交换两个数_用指针交换两个数的值

用指针交换两个数的值

1.指针存放是是地址,所以在用指针交换两个数的时候,需要对指针进行解引用(*p)。

用指针交换两个数,需要知道p1=p2与*p1=*p2。

p1=p1是将p2的值赋值给p1.

*p1=*p2是将p2指针地址存放的值,赋值给p1指针地址存放的值,即p1地址处存放的值为*p。

2.指针实现交换两个数的值:

  1. #include <stdio.h>
  2. void swap(int *p1,int *p2)
  3. {
  4. int tmep = *p1; //保存临时值
  5. *p1 = *p2; //让p1地址处存放的值变为*p2
  6. *p2 = tmep; //让p2地址处存放的值变为temp,即为改变时的*p1
  7. }
  8. int main()
  9. {
  10. int a = 10;
  11. int b = 20;
  12. swap(&a,&b);
  13. printf("%d %d\n",a,b);
  14. //int *t;
  15. //t = &a;
  16. //*t = 5;
  17. //printf("%d\n",a);
  18. return 0;
  19. }

3.运行结果:

4.总结:

在使用指针交换两个数时,需要理解,*p1=*p2是将p2指针地址存放的值,赋值给p1指针地址存放的值,即p1地址处存放的值为*p。

给指针赋值时的错误操作:int *p;*p=5;这样赋值是错误的,因为p还未被初始化指向的地址。

正确的操作:int *p,a;p=&a;*p=5;此时,p地址处存放的值为5,即a=5。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/数据流舞者/article/detail/63038
推荐阅读
相关标签
  

闽ICP备14008679号