搜索

对memset赋值/初始化的理解


发布时间: 2022-11-24 22:42:01    浏览次数:29 次

给int数组赋值

memset( *a, x, sizeof(a))
int类型元素是4字节
而memset赋值时是给每个字节赋值x
那么对于某一个元素 如果x = 1
则赋值时给到每一个元素是 00000001000000010000000100000001;
如果x = 0,那么赋值给每一个元素0

所以赋最大值就应该令x = 11111111,
但是考虑到最高位为符号位
实际令x = 01111111 即可
即十进制的127

但是在做题时用到的判断数组某个值是否被修改时又要得到一个被memset赋值后与x相等的一个赋值的数
这时候用到的是16进制数0x3f
即00111111
赋给元素的值为0x3f3f3f3f
所以赋最大值时用memset(a, 0x3f, sizeof(a))或者memset(a, 0x3f3f3f3f, sizeof(a))都可以
但是inf选用0x3f3f3f3f就行

免责声明 对memset赋值/初始化的理解,资源类别:文本, 浏览次数:29 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 10:42:01。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/cancers/p/16916461.html