目录
写在前面
最近做题被\(memset\)坑了一把,所有重新看了一下有关\(memset\)的东西,下面的\(f\)严谨来讲应该写为\(F\),不过我懒得改大写(逃)
关于\(0x3f3f3f\)
先从用\(memset\)赋值的常见的值\(0x3f3f3f\)说起吧
他是满足下面两个性质的最大的整数
- 整数的两倍不超过\(0x7fffffff\),即\(int\)能表示的最大的整数
- 整数的每\(8\)位相同
关于\(memset\)
memset(a,val,sizeof(val));
关于上面的例子
是将数值\(val(0x00\backsim 0xff)\)填充到数组\(a\)的每个字节上去,我们知道\(1\)个\(int\)占用\(4\)个字节,所以用\(memset\)只能赋值出每\(8\)位都相同的\(int\)
常见的问题
可以参考这个讨论里面写的还是比较详细的