strcpy,memcpy和memset的区别

strcpy函数的原型:char* strcpy(char* dest, const char* src);

memcpy函数的原型:void *memcpy( void *dest, const void *src, size_t count );

memset函数的原型:memset(void *s, int ch,size_t n);

strcpy,memcpy和memset主要有以下三点区别:

a.复制内容不同,strcpy只能复制字符串,而memcpy可以复制任一内容,比如整形、结构体等。所以在复制字符串时会用strcpy(因为效率原因),而复制其他类型数据一般会用memcpy。

b.从参数可以看出复制方法也不尽相同。strcpy不需要指定特定长度,遇到“\0”才会结束,所以使用不当容易造成溢出。memcpy则是根据第三个参数决定复制长度。

c.将s中当前位置后面的n个字节用 ch 替换并返回 s,作用是在一段内存块中填充某个给定的值,它是对较大的结构体数组进行清零的一种快速操作。

发布了21 篇原创文章 · 获赞 36 · 访问量 7248

猜你喜欢

转载自blog.csdn.net/weixin_44397852/article/details/87657013