微信上微网站怎么做的,古典asp网站源码,电商到底是做什么的,杭州有哪些网络公司乐观学习#xff0c;乐观生活#xff0c;才能不断前进啊#xff01;#xff01;#xff01; 我的主页#xff1a;optimistic_chen 我的专栏#xff1a;c语言 点击主页#xff1a;optimistic_chen和专栏#xff1a;c语言#xff0c; 创作不易#xff0c;大佬们点赞鼓… 乐观学习乐观生活才能不断前进啊 我的主页optimistic_chen 我的专栏c语言 点击主页optimistic_chen和专栏c语言 创作不易大佬们点赞鼓励下吧~ 文章目录 1.memcpy函数(内存拷贝)2. memmove函数3.memset函数4.memcmp函数完结 1.memcpy函数(内存拷贝) 总结 • 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 • 这个函数在遇到 ‘\0’ 的时候并不会停下来。 • 如果source和destination有任何的重叠复制的结果都是未定义的。 直接实现 #include stdio.h
#include string.hstruct {char name[40];int age;
} person, person_copy;int main ()
{char myname[] Pierre de Fermat;/* using memcpy to copy string: */memcpy ( person.name, myname, strlen(myname)1 );person.age 46;/* using memcpy to copy structure: */memcpy ( person_copy, person, sizeof(person) );printf (person_copy: %s, %d \n, person_copy.name, person_copy.age );return 0;
}自主实现 //memcpy函数拷贝结束后会返回起始地址
2 my_memcpy(void* dest, void* src, size_t num)//num为字节数char*最合适
3 {
4 void *ret dest;
5 assert(dest src);
6 while (num--)
7 {
8 //使用char*指针解引用访问一个字节
9 *(char*)dest *(char*)src;
10 src (char*)src 1;
11 dest (char*)dest 1;
12 }
13 return ret;
14 }
15 int main()
16 {
17 int arr[] { 1,2,3,4,5,6,7,8,9,10 };
18 int arr2[20] { 0 };
19 //memcpy(arr2, arr, 20);
20 my_memcpy(arr2, arr, 20);
21 int i 0;
22 for (i 0; i 20; i)
23 {
24 printf(%d , arr2[i]);
25 }
26
27 return 0;
28 }2. memmove函数 总结 • 和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的 • 如果源空间和⽬标空间出现重叠就得使⽤memmove函数处理。 直接实现 #include stdio.h
#include string.hint main ()
{char str[] memmove can be very useful......;memmove (str20,str15,11);puts (str);return 0;
}自主实现 void * memmove ( void * dst, const void * src, size_t count)
{
void * ret dst;
if (dst src || (char *)dst ((char *)src count))
{
while (count--) {*(char *)dst *(char *)src;dst (char *)dst 1;src (char *)src 1;}
}
else
{dst (char *)dst count - 1;src (char *)src count - 1;while (count--) {*(char *)dst *(char *)src;dst (char *)dst - 1;src (char *)src - 1;}
}
return(ret);
}3.memset函数 总结 memset是⽤来设置内存的将内存中的值以字节为单位设置成想要的内容 直接实现 #include stdio.h
#include string.hint main ()
{char str[] almost every programmer should know memset!;memset (str,-,6);puts (str);return 0;
}4.memcmp函数 总结 • ⽐较从ptr1和ptr2指针指向的位置开始向后的num个字节 直接实现 #include stdio.h
#include string.h
int main()
{
char buffer1[] DWgaOtP12df0;
char buffer2[] DWGAOTP12DF0;
int n;
n memcmp(buffer1, buffer2, sizeof(buffer1));
if (n 0)
printf(%s is greater than %s.\n, buffer1, buffer2);
else if (n 0)
printf(%s is less than %s.\n, buffer1, buffer2);
else
printf(%s is the same as %s.\n, buffer1, buffer2);
return 0;
}完结 本次博客到此结束 祝开心每一天~~~ 最后觉得博客有帮助可以点点关注支持一下期待下次博客~~~