>> DAVID J.马兰：让我们在写一个程序 我们尝试交换的价值
两个变量，x和y。
事先，我已经写了很多 这一计划已经的。
首先，我声明了一个变量x， 并存储在它的价值，1。
然后我声明变量y和 在其存储的值，2。
>> 然后，我继续printf显示 这两个变量的值。
然后我要求与其他的printf 将交换这些变量。
然后，我调用了交换功能。
然后我要求的变量 已互换。
然后我打印出了什么我要求 是x和y的新值。
>> 那么什么是这个函数swap？
这不是自带的C。 事实上，如果我们看一下顶部我
文件，你会发现，我已经声明 原型为这个函数swap
指定，它需要两个整数， 任意地称为a和b，并且此
函数不返回任何东西。
因此推测，它做什么，它说 在掉期和b的值。
现在让我们来实现交换。
>> 首先，我要声明一个临时 变量，并分配给它
在a的值，虽然我可以只 因为容易储存在里面湾
我当时要去改变数值 的是等于b中。
然后最后，我要改变 的B值是什么了，但
现在的温度。
>> 现在，我要求什么我刚刚做 在逻辑上是正确的。
我已经存储在一个临时变量， 改变了的值是B的，然后
改变B的值是什么的了。
但是，当我编译并运行此 程序，我担心这不是
将我所看到的。
>> 作，没有交换。
点斜线，没有交换。
不幸的是，根据printf的， x和y的值，即使
之后我们声称要​​交换 它们仍然是1和2。
>> 现在，这是为什么？
嗯，事实证明，在主，当我们 调用这个函数的交换，传递
x和y作为参数，它实际上 x和y的副本即
传递到交换。
即，它们的值1和2是 通过掉期为a和b。
而且它是a和b，我们是最终 交换主。
>> 即，1变为2，2变为1。
但由于交换没有返回值 并且，因为它接收到的x副本
和y，它的行为已 关于x和y的任何效果。
事实上，a和b的作用域，可以这么说， 交换，而x和y保持
作用域主。
>> 因此，我们有一个问题。
但如何解决它？