通过函数怎么实现修改2个变量的地址达到交换值的目的

通过函数如何实现修改2个变量的地址达到交换值的目的
int a,b;
如何达到交换a与b的地址我这样做不行啊 
#include <iostream>
using namespace std;
void swap(int *a,int *b)
{
int *c;
cout<<"swap函数中,交换前,a的地址:"<<a<<endl;
cout<<"swap函数中,交换前,b的地址:"<<b<<endl;
c=a;
a=b;
b=c;
cout<<"swap函数中,交换后,a的地址:"<<a<<endl;
cout<<"swap函数中,交换后,b的地址:"<<b<<endl;
}
int main()
{
int a=3,b=4;
cout<<"主程序中,交换前,a:"<<a<<"地址"<<&a<<endl;
cout<<"主程序中,交换前,b:"<<b<<"地址"<<&b<<endl;
swap(&a,&b);
cout<<"主程序中,交换后,a:"<<a<<"地址"<<&a<<endl;
cout<<"主程序中,交换后,b:"<<b<<"地址"<<&b<<endl;
return 0;
}

------解决方案--------------------
int a,b;

这句定义将使编译器在栈中分配两块内存,一块给a,一块给b。
程序运行的时候,使用ab的时候直接使用这两块内存,它不知道这两块内存叫什么名字,只知道这两个地址。

楼主想要的,恐怕是让a这个名字对应b这块内存吧。
遗憾的是,程序运行的时候根本就不存在a这个名字,只存在这两块内存的地址。
要交换?程序运行时用其他程序修改本程序的汇编代码吧,如果你觉得这样做有意义的话。