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;
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;