memset 的 一些 用法

本文详细介绍了memset函数的功能及使用方法,包括初始化数组为0、-1、1及较大或较小数值的过程,并解释了不同数值转换为二进制后的含义及影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

memset的功能是将一快内存中的内容以单个字节逐个拷贝的方式放到指定的内存中去。


如memset(dp,0,sizeof(dp))其中dp为一个int型数组,因为int为4个字节,

那么每一个字节的位置上都放 00000000 最好方的就是 00000000 00000000 000000000 00000000 将该二进制转化为10进制后为0如果放-1 。


则放的是 11111111 11111111 11111111 11111111 (每一个8为是-1的补码。)转化为十进制后也是-1


但是放1 则放的是 00000001 00000001 00000001 00000001 转化为十进制后显然不为1再看一个

如果放127 (127的二进制表示是01111111)则放的是01111111 01111111 01111111 01111111 转化后是2139062143这样就可以讲数组初始化为一个很到的值


但是如果放128 (128的二进制是10000000)则放的是10000000 10000000 10000000 10000000 (转化为十进制)因为最高位是1 所以是负数,


因为这是补码,还原成原码 补码 10000000 10000000 10000000 10000000

反码 10000000 10000000 10000000 01111111

原码 11111111 01111111 01111111 10000000这个数是-2139062144。

这样就可以讲数组初始化为一个很小的数。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值