C++中把一个数组赋值给另一个数组
时间: 2024-09-19 17:15:09 浏览: 42
在C++中,将一个数组赋值给另一个数组通常涉及到指针或者通过数组名传递。如果你想要复制整个数组的内容,有以下几种常见方法:
1. **直接赋值** (如果元素类型支持复制构造函数):
```cpp
int sourceArray[5] = {1, 2, 3, 4, 5};
int destinationArray[5];
// 直接赋值(浅拷贝)
destinationArray = sourceArray;
```
这里`destinationArray`现在包含了与`sourceArray`相同的元素。
2. **使用循环复制**:
如果元素类型不支持复制构造函数,可以逐个元素复制:
```cpp
for(int i = 0; i < 5; ++i)
destinationArray[i] = sourceArray[i];
```
3. **使用标准库提供的赋值操作符**(深拷贝,如果元素是复杂类型):
```cpp
std::copy(sourceArray, sourceArray + 5, destinationArray);
```
4. **使用数组初始化列表**(C++11及以上版本):
如果两个数组大小相同,可以直接使用初始化列表:
```cpp
int destinationArray[5] = {sourceArray[0], sourceArray[1], ..., sourceArray[4]};
```
注意,在以上所有方法中,源数组(sourceArray)的生命周期需要长于目标数组(destinationArray),因为它们共享了内存地址。若不是这种情况,可能会导致未定义的行为。
阅读全文