C语言函数传指针遇到问题

img


为什么最后输出的是3,5,3,5?
明明在函数调用结束之后,*p和*q的指向的地址掉换了啊

虽然函数的逻辑功能是交换两个指针所指向的地址,但是在作为调用函数的时候,实参p,q只是把自己的一个副本给到函数内部的变量使用,自己不会被改变。要想在函数内部改变p,q可以把形参,int *a \int *b 改为引用的方式,int *&a \ int *&b;