memset是如何赋值的以及一些遐想

来源:互联网 发布:可以注销淘宝店铺吗 编辑:程序博客网 时间:2024/06/05 06:55

根据测试得知。。。


memset是获取第二个参数的二进制从右边起的八位也就是一个字节,


不断重复的填充第三个参数那么多次填充到以第一个参数为起端的连续区域里


至少C/C++是这样


所以呢,如果要给一个int数组每个元素都赋值一个同样很大的数,


我们当然希望一个数的二进制的1尽可能的多,


由于int在计算机里是用补位表示的,也就是说当给一个有7个1的二进制去赋值的时候得到的数是最大的


这个数就是127啦


为什么不是8个呢……因为符号位若为1就是负数了


当然了很显然想到若是无符号的int,也就是unsiged int的话,赋值8个1就可以得到无符号位的最大数赋值数组的每个元素


也就是255啦


于是以此类推,就可以很巧妙的用memset给数组赋值一连串相同的你希望的数

0 0