一个关于函数指针的问题

这个为什么结果还是3 5啊
虽然原来xy的值并没有交换 但是ab的地址的指向不是发生了改变吗?ab的指向不就是pq的指向吗?为什么ab的指向变了但pq没变

img

你还是没理解什么叫
修改形参的值不改变实参的值
ab是指针,它们的值其实就是指向的地址
你改了它们的地址,不影响传入的实参的地址
如果你需要改变两个指针指向的值,那么要改*a和*b,而不是改a和b
如果你需要改指针的指向,那么要定义成*&a和*&b,或者二级指针

改变的只是形参,不影响实际p q的值,
在函数体内修改a ,b的指向不能实际影响实参的值。要想p q改变,需要在函数中交换a b指向的空间中的内容,而不是交换a b本身。