memset 初始化数组 & 实现原理

Posted yinyuqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。


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

以上是关于memset 初始化数组 & 实现原理的主要内容,如果未能解决你的问题,请参考以下文章

memset初始化

一个数组初始化的问题

c语言memset(&a, 0, sizeof(struct customer));

将 memset 与未初始化的变量一起使用

奇怪的笔记酱

strcpy,memcpy,memset函数实现