我的理解是在函数中它交换了指针的指向,是函数结束后就变回原来的指向了吗?
然后如果在函数内定义一个常量,再交换,是交换了指针指向的值吗?函数结束后交换的值为什么不会变回主函数原本的值呢?
要理解这一点,你要理解值传递和地址传递的区别
值传递是将数值复制一份,将复制出的副本
传入函数
所以如果使用
fun(int a){
a = 3;}
这种写法,函数内的操作不会对函数外的原值产生影响
而地址传递是将变量所在的内存位置传给函数,函数对该位置的修改是直接访问了原数据所在内存,所以函数内的修改会反映到函数外
fun(int *a){
*a = 3;}
有帮助望采纳~