c++中如何将一个数组的值赋值给另一个数组
时间: 2023-09-13 13:12:50 浏览: 410
在C++中,可以使用循环遍历并逐一赋值来实现将一个数组的值赋值给另一个数组,也可以使用标准库中的函数`std::copy()`或数组名来实现。
以下是使用循环遍历实现数组赋值的示例代码:
```c++
int arr1[] = {1, 2, 3, 4, 5};
int arr2[5];
for(int i=0; i<5; i++){
arr2[i] = arr1[i];
}
```
以下是使用`std::copy()`函数实现数组赋值的示例代码:
```c++
#include <algorithm>
int arr1[] = {1, 2, 3, 4, 5};
int arr2[5];
std::copy(arr1, arr1+5, arr2); // 将arr1复制到arr2中
// 输出arr2中的元素
for(int i=0; i<5; i++){
std::cout << arr2[i] << " ";
}
```
以下是使用数组名实现数组赋值的示例代码:
```c++
int arr1[] = {1, 2, 3, 4, 5};
int arr2[5];
// 直接将arr1赋值给arr2
arr2 = arr1; // 错误!数组名不能作为左值,不能直接赋值
// 可以使用memcpy()函数实现数组复制
memcpy(arr2, arr1, sizeof(arr1));
// 输出arr2中的元素
for(int i=0; i<5; i++){
std::cout << arr2[i] << " ";
}
```
上述代码中,`std::copy()`函数的第一个参数是源数组的起始地址,第二个参数是源数组的结束地址(不包括该地址),第三个参数是目标数组的起始地址。`memcpy()`函数的第一个参数是目标数组的起始地址,第二个参数是源数组的起始地址,第三个参数是要复制的字节数。需要注意的是,数组名不能作为左值,不能直接赋值,必须使用遍历、`std::copy()`或`memcpy()`等方法实现数组赋值。
阅读全文