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。


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM