C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C语言 内存函数

C语言实现内存函数的示例代码

作者:爱学习的徐徐

本文主要介绍了C语言实现内存函数的示例代码,包括memcpy、memmove、memset和memcmp的使用,具有一定的参考价值,感兴趣的可以了解一下

一、前言

在C语言中有着常见的内存函数,他们可以对内存进行操作,即可以修改内存的内容等,下面我们来简略地学习一下

二、memcpy(内存复制)

cpy是复制的意思,顾名思义,就是将一块指定大小的内存的字节逐一赋值到新的内存块上,下面是memcpy的定义

void * memcpy ( void * destination, const void * source, 1 size_t num );

下面我们可以举一个简单的使用案例

#include <stdio.h>
#include <string.h>

int main() {
	int arr1[10] = { 0,1,2,3,4,5,6,7,8,9 };
	int arr2[10];
	
	memcpy(arr2, arr1, sizeof(arr1));

	for (int i = 0; i < 10; i++) {
		printf("%d ", arr2[i]);
	}
	printf("\n");

	return 0;
}

在这里插入图片描述

可以看到,这里我将arr1数组的内存数据复制到了arr2数组中

memcpy使用细节:

三、 memmove(内存移动)

memmove的功能与memcpy的功能可以说是一样的,但是memmove有一个与memcpy不同的点,就是memmove可以操作重叠的内存,因为memmove会将要复制的内存的内容复制到临时缓冲区,然后再复制带目标内存中

void * memmove ( void * destination, const void * source,size_t num );

下面我们进行演示

#include <stdio.h>
#include <string.h>

int main() {
	int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int arr2[10];

	memmove(arr2, arr1, sizeof(arr1));
	memmove(arr1 + 1, arr1, sizeof(int) * 9);

	for (int i = 0; i < 10; i++) {
		printf("%d ", arr1[i]);
	}
	printf("\n");

	for (int i = 0; i < 10; i++) {
		printf("%d ", arr2[i]);
	}

	return 0;
}

在这里插入图片描述

这里我将arr1中的数据复制到了arr2中,然后将arr1的数据进行了后移

四、memset(内存设置)

memset的函数的作用是将指定内存大小的内存块中的值设置为想要的值

void * memset ( void * ptr, int value, size_t num );

下面我们来举例一些例子

#include <stdio.h>
#include <string.h>

int main() {
	char arr1[] = "HelloWorld!";
	printf("%s\n", arr1);

	memset(arr1, 'X', 5);

	printf("%s\n", arr1);

	return 0;
}

在这里插入图片描述

这里我使用了memset函数将Hello替换成了X

五、memcmp(比较指定字节)

memcmp 逐字节比较两个内存区域的内容,比较的字节数由参数 n 指定。比较从两个内存区域的起始位置开始,依次比较每个字节的值

返回值

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

同样我们举例一下案例

#include <stdio.h>
#include <string.h>

int main() {
	char arr1[] = "HelloWorld!";
	char arr2[] = "AelloWorld!";

	if (memcmp(arr1, arr2, sizeof(arr1)) > 0) {
		printf("arr1字符串大!\n");
	}

	return 0;
}

在这里插入图片描述

这里我使用了字符串比较,但并不代表着只能比较字符串,memcmp也可以比较其他类型的数组

使用细节

六、End

到此这篇关于C语言实现内存函数的示例代码的文章就介绍到这了,更多相关C语言 内存函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文