首先导入头文件:<stirng.h>
数组不能直接进行赋值操作,如果想要从数组a复制k个元素到数组b,可以通过如下方法来实现数组之间的赋值:
memcpy(b, a, sizeof(数据类型) * k);
sizeof()中的数据类型由数组a和数组b的数组类型决定,并且数组a与数组b的数据类型最好保持一致,如果不一致在赋值时可能会出现精度的缺失(例如如果数组a为浮点型数组,而b为整形数组,赋值操作必定会导致精度缺失)。如果想把数组a中的所有元素都赋值给数组b,那么可以采用如下方式:
memcpy(b, a, sizeof(a));
这里也有个注意点:数组b的长度要大于等于数组a,否则数组b无法存储数组a的所有元素。
#include <iostream> #include <string.h> using namespace std; int main() { int a[5] = {1, 2, 3, 4, 5}; int b[10]; //使用memcpy函数把数组a的内容全部复制到数组b中 memcpy(b, a, sizeof(a)); for(int i = 0; i < 5; i++) { cout << b[i] << " "; } cout << endl; //把数组a中的部分数据复制给另一个数组 int c[10]; memcpy(c, a, sizeof(int) * 3); for(int i = 0; i < 3; i++) { cout << c[i] << " "; } return 0; }