C++怎么实现数组的传递

C++如何实现数组的传递
char name1[20]="zhangsan";
char name2[20]="lisi";
有什么方法交换name1和name2啊  (不能逐个修改数组的数据)
------解决思路----------------------
不能逐个修改数组的数据

这是不可能的. 
就算是使用strcpy或者memcpy这类的函数低层也只能按一定字节数复制交换.

因为数组名实际上就是一个地址, 即数据的起始位置, 编译器编译后, 这个就是一个地址, 没有变量保存. 所以没办法在不复制内存数据的情况下交换两的数据.

不过, 在实际应用中可能会这样使用.
char name1[20]="zhangsan";
char name2[20]="lisi";
char *p = name1;
int sb = 0;
cin>>sb;
if( sb !=0)
{
    p = name2;
}

cout<<"who is sb:"<<p<<endl;