关于memset的使用

有些oj上的G++支持 cstdio的memset,有些则支持stdio.h中的memset(划掉)

这两个头文件关系比较复杂, 具体我也说不清...按照c++文档中的说法,stdio已经deprecated了,也就是不赞成使用了。(划掉)

但貌似我有几道题用csdio的memset编译错误,要用stdio.h(划掉)


 

memset应该是在string.h头文件

memset是按字节赋值的,比如memet 0x3f, 3f就是一个字节,64位系统中,int有32位即4个字节,所以赋值给int后每一个数都是0x3f3f3f3f,4个3f

现在应该清楚了为什么不能用memset赋值1了吧,1 写成8位字节是00000001,赋值给int就变成了00000001 00000001 00000001 00000001, 不知道变成啥奇怪的玩意儿了

至于赋值-1,大概是刷了11111111进去,总的还是-1,所以赋值-1是没问题的。

 

 

下面总结一些不会错的赋值

memset 0

memset -1

memset 0x7f(int可达到的最大值2139062143)

memset 0x3f ( 0x3f 大约10亿6千万,常用的)

posted @ 2017-11-21 11:38  LBNOQYX  阅读(325)  评论(0编辑  收藏  举报