赞
踩
int p;
p = *a;
*a = *b;
*b = p;
可以发现函数调用前后还是函数执行前后地址都没有发生改变,值做了交换
int *p;
*p = *a;
*a = *b;
*b = *p;
可以发现三个指针互换时,是不能交换值和地址的,只有中间*a = *b起到了作用,所以b的值给了a
int *p;
p = a;
a = b;
b = p;
可以发现在函数里交换了地址,值做了交换,但只在当前函数生效,
但丝毫不影响主函数的值,因此在其他函数交换指针地址是不能改变主函数的值的
如果我们在函数里改变了形参指针的地址,会发现即使在函数里地址发生改变,值发生改变,也并不会改变主函数的地址和值
除非我们把指针的值改变,主函数的值才会改变
因此得出结论: 只有在函数里改变了指针的值,才会影响到主函数的实参,如果只是交换地址什么的,对主函数没有任何影响
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。