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,作用是在一段內存塊中填充某個給定的值,它是對較大的結構體數組進行清零的一種快速操作。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章