首先你要明白形参和实参。在函数内部定的x与y是属于形参。你将两个形参的数据进行调换,当你跳出函数的时候,这两个形参销毁。而main函数里面的实参x和y所指向的地址不会变。
但是如果你在函数内部是进行改变指针所指向的数据。那么虽然形参xy销毁了,但是实参xy所指向的数据被改变了。
这个就好比,我有两个相同类型指针a和b。他们指向的位置一模一样,当我改变指针a所指向的数据。然后指针b所指向的数据也会改变,因为ab指向同一个数据。这里也是类似原理
t=*x;
*x=*y;
*y=t;
你必须交换x和y指向的地址内的值,不要交换x和y的地址
因为x和y只是形参,你改它的地址不改变实参的地址