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在内存中的样子
arr2在内存中的样子
当比较16个字节时,相等
#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个字节时,
依然是相等
原因是:在第17个字节处刚好相等(这里是小端字节序)
#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个字节时
结果是-1
原因是在第18个字节处出现了不一样,arr2是33,arr1是00