首页后端开发其他后端知识C语言中内存操作函数有哪些,用法是什么?

C语言中内存操作函数有哪些,用法是什么?

时间2024-03-28 17:24:09发布访客分类其他后端知识浏览698
导读:这篇文章我们来了解C语言中内存操作函数的相关内容,文中给大家介绍了几个内存操作函数的的作用和使用,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧! 头文件:#include<memory.h> 1.memcpy 作用...

这篇文章我们来了解C语言中内存操作函数的相关内容,文中给大家介绍了几个内存操作函数的的作用和使用,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!

头文件:#includememory.h>

1.memcpy

作用:内存拷贝

函数原型:

void *memcpy( void *dest, const void *src, size_t count );
    

使用:

使用格式:memcpy(目的地,原,想操作内存大小(单位字节))

把 "参数2" 起始的 "参数3" 个字节 内容拷贝到 "参数1 '

memecpy函数类似于strncpy。

例:

#include memory.h>
    
#include string.h>
    
#include stdio.h>

int main()
{

	int aa[] = {
 1,2,3,4 }
    ;

	int bb[10] = {
 0 }
    ;
    
	memcpy(bb, aa, 4 * sizeof(int));
    //把aa数组中4*4(每个int类型是4字节)内容拷贝到bb数组
	for (int i = 0;
     i  10;
 i++) //打印bb数组全部数据
	{
    
		printf("%d ", bb[i]);

	}
	
}
    

最后bb字符串中前4*4个字节的内容被改为aa的内容

注意 :memcpy不能拷贝重叠内存。

#include memory.h>
    
#include string.h>
    
#include stdio.h>

int main()
{

	int aa[] = {
 1,2,3,4,5,6,7,8,9,10 }
    ;
    
	my_memcpy(aa + 2, aa, 24);
    
	for (int i = 0;
     i  10;
 i++)
	{
    
		printf("%d ", aa[i]);

	}

}
    

输出:

拷贝重叠内存会出现这样的问题。

2.memmove

作用:内存拷贝(可拷贝重叠内存)

原型:

void *memmove( void *dest, const void *src, size_t count );
    
 

使用与memcpy一样,只是memmove可以拷贝重叠内存

#include memory.h>
    
#include string.h>
    
#include stdio.h>

int main()
{

	int aa[] = {
 1,2,3,4,5,6,7,8,9,10 }
    ;
    
	memmove(aa + 2, aa, 24);
    
	for (int i = 0;
     i  10;
 i++)
	{
    
		printf("%d ", aa[i]);

	}

}
    

出:

同样的代码使用memmove就可以.

3.memcmp

作用:内存比较

函数原型:

int memcmp( const void *buf1, const void *buf2, size_t count );
    
 

使用:

使用格式:memcmp(地址1,地址2,想要比较的内存大小 单位bit)

逐字节比较内存大小,

逐字节一对一对比较!!

返回值有三种情况:

0 “参数1” 与 “参数2” 逐字节比较时遇到的第一对不同的内存时 “参数1” 中数据 “参数2”。

=0 “参数1” 与 “参数2” 中的前“ 参数” 三个字节的内容完全相等。

> 0 “参数1” 与 “参数2” 逐字节比较时遇到的第一对不同的内存时 “参数1” 中数据 > “参数2”。

4.memset

作用:内存设置

函数原型:

void *memset( void *dest, int c, size_t count );
    
 

使用:

使用格式:memset(地址,一个数,设置多少字节)

例:

#include memory.h>

int main()
{

	int a[] = {
1,2,3,4,5}
    ;
    
	memset(a, 1, 20);
//把从a开始的前二十个字节内容改成1
}
    

结果:

总结

关于C语言中内存操作函数就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多内存操作函数的使用,大家可以关注网络其它的相关文章。

文本转载自PHP中文网

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C语言中内存操作函数有哪些,用法是什么?
本文地址: https://pptw.com/jishu/655087.html
HTML图片设置透明度的方法有什么 HTML中去掉input的边框方法有几种

游客 回复需填写必要信息