在编程的过程我们可能会遇到交换两个变量的值,有些人在编写交换函数的时候,会出现一种无法交换的情况,其根本原因就是因为没有注意到传值跟传地址的差别,误以为只要改变变量的值就会使得地址中的值改变,其实这是不正确的,如下程序所示:
#include <iostream>
void swap(int ,int );
int main()
{
int a = 3;
std::cout << a<< std::endl;
swap(a,a+1);
std::cout << a<< std::endl;
return 0;
}
void swap(int a,int b)
{
a=b;
std::cout<<a <<std::endl;
}
我们猜猜结果会是什么?因为啥会产生这样的结果。
大家可以看到并没有交换成功,出现了一种意外的情况,这个时候我们打印其地址值看一下
#include <iostream>
void swap(int ,int );
int main()
{
int a =