首先用这两函数要引入头文件
C语言 #include<string.h>
C++ #include<cstring>
函数的传参
memcpy(数组名1,数组2,n)
参数3:前数组2的前n个字节拷贝到数组1中
功能:把数组2拷贝到数组1
提醒:第三参数一般用sizeof(数组名2)
注意:这里是按一个一个字节进行拷贝
测试代码如下,便于大家理解
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
int a[5]={1,2,3,4,5};
int b[5];
//把数组a拷贝到数组b中
//注意这里是按一个一个字节拷贝
memcpy(b,a,sizeof a);
for(int i=0;i<5;i++)
cout<<b[i]<<" ";
cout<<endl;
char ch1[5]={'a','b','c','d','e'};
char ch2[5];
//把数组ch1拷贝到数组ch2中
//注意这里是按一个一个字节拷贝
memcpy(ch2,ch1,sizeof ch1);
for(int i=0;i<5;i++)
cout<<ch2[i]<<" ";
}
输出结果:
1 2 3 4 5
a b c d e
✊
✊
✊
memset(数组,参数2,参数3)
功能:把数组的前参数3个字节转化为参数2
注意:这里是一个一个字节转化为参数2
一般不用来赋值,但是常用来清0操作
测试如下:
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
int a[5]={1,2,3,4,5};
//memset()函数一般用来清0
//注意它也是按一个一个直接清0
//将数组a的每一个字节的地址所对应的值替换成0
//即把数组a清为0
memset(a,0,sizeof a);
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
}
输出结果:
0 0 0 0 0