memcmp
函数在 C 语言中用于按字节比较两个内存区域的内容,返回值用于表示他们的关系。
memcmp 函数头文件
memcmp
函数的头文件是<string.h>
。在使用memcmp
函数之前,确保在你的 C 代码中包含这个头文件:
#include <string.h>
memcmp 函数原型
int memcmp(const void *s1, const void *s2, size_t n);
memcmp
函数将s1
指向的对象的前n
个字符与s2
指向的对象的前n
个字符进行比较;
比较顺序是逐字节从最低地址到最高地址;
参数说明
s1
:指向第一个内存块的指针;s2
:指向第二个内存块的指针;n
:要比较的字节数;
返回值
memcmp
函数返回大于、等于或小于0
的整数;
返回0
时,表示两个内存块的前n
个字节完全相等;
返回值的正负是基于字节值的差异计算的:
memcmp = (unsigned char)s1[i] - (unsigned char)s2[i];
memcmp 示例代码
比较数组是否相等
比较数组或结构体时,应覆盖整个对象区域;
#include <stdio.h>
#include <string.h>
int main() {
int array1[] = { 1, 2, 3, 4, 5};
int array2[] = { 1, 2, 3, 4, 5};
if (memcmp(array1,array2,sizeof(int) * 5) == 0) {
printf("Completely identical.\n");
}else{
printf("Differences exist.");
}
return 0;
}