memcpy内存比较函数;memset内存设置函数
【摘要】 memcpy内存比较函数;memset内存设置函数
考虑许久,笔者最终还是将这两个函数放在一块进行讲解!主要还是在于:这两个函数,不怎么常见,所以,我们知道大概就行!不用刨根接地的去理解太过于深奥的问题!所以,在此,笔者将这两个进行联立起来讲解!!
若是……嗯,不喜勿喷!
1.memcmp内存比较函数:使用语法为:
int memcmp ( const void * ptr1, const void * ptr2, size_t num )
主要的意思是:比较从ptr1 和 ptr2指针开始的num个字节!
若是:ptr1 > ptr2 : 返回一个大于0的数字:1
ptr1 = ptr2 :返回0
ptr1 < ptr2 :返回一个小于0的数字:-1
主要的代码使用过程为:
#include <stdio.h>
int main()
{
int arr1[] = { 1,2,3,4,5 };
//1--->01 00 00 00 (4个字节)
//2--->02 00 00 00
//3--->03 00 00 00
//4--->04 00 00 00
//5--->05 00 00 00
int arr2[] = { 1,2,3,0,0 };
int ret = memcmp(arr1, arr2, 12);
//比较前12个字节
if (ret < 0)
{
printf("arr1<arr2");
}
else if (ret > 0)
{
printf("arr1>arr2");
}
else
{
printf("arr1==arr2");
}
return 0;
}
代码的运行结果为:
上面就是 memcmp主要的使用过程!!
2.下面笔者就memset内存设置函数,进行简单的讲解!!
memset函数的使用语法为:
void * memset ( void * ptr, int value, size_t num )
在这里的主要意思为:将ptr所指向的num个字节,设置为指定的value!!
请看笔者的使用过程!!
#include <stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5 };
memset(arr, 0, 8);
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
代码的运行结果为:
其实,对于该段代码,我们可以通过:监视内存来观察!
请看笔者的监视过程!
在刚开始时候: int arr[] = { 1,2,3,4,5 };
当代码运行到: memset(arr, 0, 8); 部分的时候:
上面就是这两个代码的主要运行过程!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)