memcmp函数

头文件:

string.h 

函数的声明:

int memcmp(const void *str1, const void *str2, size_t n)

返回值:

str1

str1=str2               =0

str1>str2               >0

用法:

通过输入字节数n,比较前后两个数组从首地址开始的n个字节

例子:

#include
#include
int main() {
	int arr1[5] = { 1,2,3,4,5 };
	int arr2[5] = { 1,2,3,4,0x11223305 };
	int ret = memcmp(arr1, arr2, 16);
	printf("%d", ret);
	return 0;
}

arr1在内存中的样子

memcmp函数_第1张图片

 

arr2在内存中的样子 

 memcmp函数_第2张图片

 当比较16个字节时,相等

memcmp函数_第3张图片

#include
#include
int main() {
	int arr1[5] = { 1,2,3,4,5 };
	int arr2[5] = { 1,2,3,4,0x11223305 };
	int ret = memcmp(arr1, arr2, 17);
	printf("%d", ret);
	return 0;
}

 当比较17个字节时,

memcmp函数_第4张图片

 依然是相等

原因是:在第17个字节处刚好相等(这里是小端字节序)

memcmp函数_第5张图片

 

#include
#include
int main() {
	int arr1[5] = { 1,2,3,4,5 };
	int arr2[5] = { 1,2,3,4,0x11223305 };
	int ret = memcmp(arr1, arr2, 18);
	printf("%d", ret);
	return 0;
}

当比较18个字节时

memcmp函数_第6张图片

 结果是-1

原因是在第18个字节处出现了不一样,arr2是33,arr1是00

memcmp函数_第7张图片

 

你可能感兴趣的:(蓝桥杯,c语言,开发语言,后端,c++)