C++语言程序设计

函数的参数不仅可以是整型、实型、字符型等数据，还可以是指针。它的作用是将一个变量的地址传送到另一个函数中。
我们知道，函数调用的的值传递方式中，形参和实参均占用不同的存储单元，形参值的变化不会影响实参的值，也就是说，值传递方式不能带回参数值。我们也知道，一个函数用return只能返回一个函数值，如果要求函数返回多个值，一个可行的方法是将变量的地址作为函数的参数进行传递，也就是把指针作为函数的参数。
对于swap函数，定义了两个整型指针pa、pb作为形参，在函数内部，通过对pa、pb的操作，改变它们所指的变量的值。在调用的时候，swap(&x,&y)，分别把整型变量x、y的地址作为参数传给pa、pb，在swap函数内部，通过对x、y地址的引用，交换的是该地址所指向的数据，即交换了x、y的值。
更清晰的表达可以从下面的图中看出：

| 图7-13

执行交换后，

| 图7-14

而*pa和*pb的交换，实际上是对地址1000 和地址2000内存放的数据进行交换。所以，执行完swap函数以后，地址1000和地址2000内的数据做了交换，临时指针变量pa、pb被释放。