交换两个int指针形参类型为什么是int*&?

图片说明
如图,想交换两个指针,为什么swap函数的形参要加上引用?把引用去了得到的结果不能交换?

建议看看数据值和地址的区别

因为你交换的是指针,所以需要指针的指针或者指针的引用
如果交换的是指针指向的数字,那么只需要指针。或者引用。
如果交换的是指针的指针,那么就要指针的指针的指针,或者指针的指针的引用。
总之,交换的是什么,参数就要多一个引用或者指针。

一个是指针的值(int ),一个是指针的引用(int&)。指针的值交换后不能改变,但指针的引用交换后值能改变。

传入引用,表示是原变量的别名,对这个引用修改就是对原变量修改。传入值相当于一个新变量,对此变量修改不影响原变量,即原变量不会被交换。