数组赋值

      首先导入头文件:<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;
}

数组赋值_第1张图片


你可能感兴趣的:(memcpy)