【C语言】memcpy等函数的用法

【C语言】memcpy等函数的用法

memcpy

函数原型

void *memcpy(void *dst, const void *src, size_t size);

使用说明:将一块内存的数据复制到另一块内存。当两块内存重叠的时候,memcpy就不能保证拷贝正确。

memmove

函数原型

void *memmove(void *dst, const void *src, size_t size);

使用说明:可以拷贝内存重叠的,也可以拷贝不重叠的。

memset

函数原型

void* memset(void *dest,int c,size_t size);

使用说明:给出内存的起始地址dest,将从起始地址开始的size个字节赋值为字符c。

问题

  1. 为什么要写成void型指针呢?
  2. 主要是为了可以接收各种类型的指针,因为我们有时想拷贝的区域是存放整 形数的,有时想拷贝的区域是存放字符串的,我们总不能根据内存区域数据的类型经常改函数参数吧,这样得有多麻烦呀所以用void*就比较好
  3. 函数的返回值是void*类型,这一点类似上边的参数。
  4. 另外需要注意的是,void型的指针不能进行自加操作,也不能进行解引用,所以函数中都进行了强制类型转化。因为操作过程中是一个字节一个字节进行,所以强制转化成char *。比如:
void *p;
p++;   //错误
*p = 1;//错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值