当前位置:   article > 正文

【C语言】利用指针实现函数交换两个整型变量的内容_用指针交换ab的值

用指针交换ab的值

概要:要通过函数实现交换两个整型变量的内容,可以利用指针通过地址远程改变a、b的值,以达到交换a、b值的目的。

1.利用传参值传递方法无法达到交换的目的(传值调用):

 当实参传递给形参时,形参是实参的一份临时拷贝,所以对形参的修改不会影响实参。

从监视可以看出a→x、b→y传参成功,由于a、b分别和x、y地址不同,x、y有自己独立的内存空间存储内容。即使x、y通过tmp交换了内容,但是不影响a、b。

2.利用指针址传递可以达到交换的目的(传址调用):

 把a地址pa,把b地址给pb,通过tmp将*pa(即a)和*pb(即b)交换变量,即通过地址远程交换了a和b的内容。(注意:不是交换地址。ps:pa是a的地址,*pa是该地址所存储的值即变量a。)

通过形参的指针就能够访问到函数外部的变量,并进行操作。

以下是完整代码:

  1. #include<stdio.h>
  2. void Swap(int *pa, int *pb)
  3. {
  4. int tmp = *pa;
  5. *pa = *pb;
  6. *pb = tmp;
  7. }
  8. int main()
  9. {
  10. int a = 0;
  11. int b = 0;
  12. scanf("%d %d", &a, &b);
  13. printf("交换前:a=%d b=%d\n", a, b);
  14. Swap(&a, &b);
  15. printf("交换后:a=%d b=%d\n", a, b);
  16. return 0;
  17. }

 

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

闽ICP备14008679号