想问一下这个什么意思 怎么看啊

img


第一个printf输出又是多少 这个是怎么看的啊 突然有一点懵逼了 短路了 搞不懂了 怎么看的啊 帮帮忙 第一个printf和第二个printf输出分别是多少

fun1不能实现a和b交换。所以输出还是a=5,b=9
fun2可以实现a和b交换。所以输出为a=9,b=5

fun1交换的是指针,指针指向的地址变了
fun2交换的是值
对于值对象来说,交换指针和交换值区别不大,除非有其他指针指向这个值,那可能造成混乱
但是因为fun1中x和y是形参,传入的是&a&b两个地址,改了形参的值并不会影响实参,所以xy并没有改变
*x是解地址,就是去这个指针的地址里找到值,(*x)++就是指针对应的实际值自增,所以fun2会将xy交换,并各自自增