1.memset 函数
进行内存的设置;
设置的数要在0-255的范围内;
读取设置的内存时要按字符读取,也就是ASCII码表示。
#include<stdio.h>
#include<string,h>
int main()
{
int a;
memset(&a,0,sizeof(a));
/*第一个参数是要设置内存的首地址,第二个参数是要设置的内容,第三个参数是要设置的内存大小*/
printf("a=%d\n",a);
memset(&a,97,sizeof(a)); //97是字符a的ASCII码表示
printf("a1=%d\n",a); //打印结果是“a1=a”
//下面两条语句是把数组b初始化为0
int b[10];
memset(b,0,sizeof(b));
memset(b,0,sizeof(int)*10);
//初始化字符数组
char d[10];
memset(a,'a',sizeof(d));
int i;
for(i=0;i<10;i++)
{
printf("%c, ",d[i]);
}
printf("\n");
return 0;
}
2.memcpy 函数
针对内存进行复制;
#include<stdio.h>
#include<string.h>
int main()
{
int a[]={1,2,3,4,5,6,7,8,9,0};
int b[10];
memcpy(b,a,sizeof(a));
int i;
for(i=0;i<10;i++)
{
printf("b[%d]=%d\n",i,b[i]);
}
//要尽量避免内存重复赋值
memcpy(&a[2],a,5*sizeof(int));
for(i=0;i<10;i++)
{
printf("a[%d]=%d\n",i,a[i]);
}
return 0;
}
3.memcmp 函数
内存比较函数,对应位置上的内容进行比较,不等就输出结果。
#include<stdio.h>
#include<string.h>
int main()
{
int a[]={1,2,3,4,5,6,7,8,9};
int b[]={1,2,3,9,5,6,7,8,9};
int flag=memcmp(a,b,sizeof(a));
if(flag<0)
{
printf("a<b\n");
}
else if(flag>0)
{
printf("a>b\n");
}
else
{
printf("a==b\n");
}
return 0;
}