关于memset语句

写在前面

最近做题被\(memset\)坑了一把,所有重新看了一下有关\(memset\)的东西,下面的\(f\)严谨来讲应该写为\(F\),不过我懒得改大写(逃)

关于\(0x3f3f3f\)

先从用\(memset\)赋值的常见的值\(0x3f3f3f\)说起吧

他是满足下面两个性质的最大的整数

  • 整数的两倍不超过\(0x7fffffff\),即\(int\)能表示的最大的整数
  • 整数的每\(8\)位(\(update:\)即每个字节)相同

关于\(memset\)

memset(a,val,sizeof(val));

关于上面的例子

是将数值\(val(0x00\backsim 0xff)\)填充到数组\(a\)每个字节上去,我们知道\(1\)\(int\)占用\(4\)个字节,所以用\(memset\)只能赋值出每\(8\)位都相同的\(int\)

常见的问题

可以参考这个讨论里面写的还是比较详细的

posted @ 2020-04-29 10:49  pyyyyyy  阅读(221)  评论(0编辑  收藏  举报