快捷搜索:  汽车  科技

c语言的函数变量(C语言基础memory函数)

c语言的函数变量(C语言基础memory函数)memcmpmemcmp是比较两块内存的值是否相等,如果前面的一块大于后面的一块返回1,如果前面一块小于后面一块就返回-1,如果相等就返回0。按照ASCII码值比较的大小。memsetmemchr是在一片内存中查找某字节内容是否为所查找的内容,为了方便指针能够向后偏移,我们将它强转成char*类型,最后返回的时候我们还是需要将其转回void*类型memchr

关注“爱当程序员的我”,每天都有关于编程头条发布


在C语言中最基础的就是string函数和memory函数,今天小编给大家分享一下memory的函数。

memory函数和string函数都差不多,但是其中就有一个很坑的函数memmove,但是了解了细节还是很简单的。

memset是在一片内存设定为初始的值,在库函数中传入参数是int类型的,小编不是很理解,如果有路过的大神,可以给小编讲解一下吗。

c语言的函数变量(C语言基础memory函数)(1)

memset

memchr是在一片内存中查找某字节内容是否为所查找的内容,为了方便指针能够向后偏移,我们将它强转成char*类型,最后返回的时候我们还是需要将其转回void*类型

c语言的函数变量(C语言基础memory函数)(2)

memchr

memcmp是比较两块内存的值是否相等,如果前面的一块大于后面的一块返回1,如果前面一块小于后面一块就返回-1,如果相等就返回0。按照ASCII码值比较的大小。

c语言的函数变量(C语言基础memory函数)(3)

memcmp

接着就是比较混乱的memcpy和memmove,两个函数都是将一块内存复制到另一块上,但是两者是有区别的

c语言的函数变量(C语言基础memory函数)(4)

假设有一个字符串是"123456789",我需要从src开始接下来的5个字节拷贝到dst,如果是memcpy函数执行的话,执行结果就是"123123129",如果是memcpy函数执行的话就会是"123123459",这种情况下我们只需要将其倒过来复制就可以了。在使用的时候我们应该注意一下他们之间的不同。

c语言的函数变量(C语言基础memory函数)(5)

memcpy

c语言的函数变量(C语言基础memory函数)(6)

memmove

小编亲测:在vs2017下这两个库函数运行的结果都相同说明vs2017已经修改了这里的问题。


结束语:

如果喜欢这篇头条,一定要收藏哟^O^

点击关注,了解更多关于编程的知识^O^

如果有不懂的地方,可以留言,相互探讨,相互学习,共同进步^O^

猜您喜欢: