C语言-内存操作函数

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;
}
发布了55 篇原创文章 · 获赞 11 · 访问量 2613

猜你喜欢

转载自blog.csdn.net/zuefeng/article/details/102632555