关于C语言函数的问题。,.,

不用指针的情况下,为啥依旧是x=5.y=10

img

你把x,y传递给u,v的时候就会创建新的变量空间,显然这片空间并不属于x,y,对u、v的改变并不会影响x、y。有一句话就是:形参是实参的一份临时拷贝,对形参的改变不会影响实参

就形参和实参的区别,一个传地址,一个传值

参数传递分为值传递和地址传递,函数的形参u和v是用的值传递,即u和v是对x和y复制后的新的变量,和原来的x和y已经没有关系了,所以替换是无效的

函数传参分传值和传址,传值是一份临时拷贝,只是把地址里面的址传给另一个地址(函数),在函数创建的地址里交换,原地址里的值不变。推荐使用传址,希望能帮到你。

不用指针的话,就不能操作对应地址上的数,你这种单纯的交换不会改变地址上的值,尽管你做了交换但是原来地址上储存的值并没有改变,所以输出结果不会改变