memset 初始化数组 & 实现原理

初始化数组可不必使用n重for循环。


原理

memset具有初始化数组的功能,能够初始化数组中的每一个值。

它是将数组中的每一个数的二进制的每一个字节初始化的。

比如初始化int类型的a数组:memset(a,1,sizeof(a)); 得到的其实是0001 0001 0001 0001。

关于0x......不懂的:我的博客

代码

#include<cstring>
如果是int数组:

  • memset(g, 0, sizeof(g));                   //全部清为0
  • memset(g, 0x7f, sizeof(g));    //可全部初始化为一个很大的数(略小于0x7fffffff)
  • memset(g, 0x3f, sizeof(g));    //稍小(适用于有加法运算)
  • memset(g, 0xbf, sizeof(g));    //负值稍大
  • memset(g,-1,sizeof(g));       //全部初始为-1

补充:初始化结构体

memset(结构体变量名,0,sizeof(变量名)); 即可将这个变量中的每一个成员变量都赋值为0。


能用到的差不多就这些了。

作者:尹昱钦
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   尹昱钦  阅读(3147)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示