当前位置:   article > 正文

C语言函数调用指针交换值_调用指针函数交换a和b的值

调用指针函数交换a和b的值
int p;
	p = *a;
	*a = *b;
	*b = p;
  • 1
  • 2
  • 3
  • 4

可以发现函数调用前后还是函数执行前后地址都没有发生改变,值做了交换
在这里插入图片描述


	int *p;
	*p = *a;
	*a = *b;
	*b = *p;
  • 1
  • 2
  • 3
  • 4

可以发现三个指针互换时,是不能交换值和地址的,只有中间*a = *b起到了作用,所以b的值给了a
在这里插入图片描述


	int *p;
	p = a;
	a = b;
	b = p;
  • 1
  • 2
  • 3
  • 4

可以发现在函数里交换了地址,值做了交换,但只在当前函数生效,
但丝毫不影响主函数的值,因此在其他函数交换指针地址是不能改变主函数的值的

在这里插入图片描述


如果我们在函数里改变了形参指针的地址,会发现即使在函数里地址发生改变,值发生改变,也并不会改变主函数的地址和值
在这里插入图片描述


除非我们把指针的值改变,主函数的值才会改变
在这里插入图片描述

因此得出结论: 只有在函数里改变了指针的值,才会影响到主函数的实参,如果只是交换地址什么的,对主函数没有任何影响

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

闽ICP备14008679号