memset:
当想要初始化数组时,往往会用到memset函数。这个函数按字节操作,相当于将指定内存的每一个字节设置成指定的值。
例如,初始化为0:memset(a,0,sizeof a),那么a数组的每一个字节都是00000000。-1的话,二进制为11111111,明显也成立。
现在讲的是无穷大和无穷小的初始化。
memset不能到达理论最值:
一个字节所代表的二进制数的极大值为01111111(0x7f),但是memset(a,0x7f,sizeof a)后得到的应该是0x7f7f7f7f(32位数),而32位数的理论最大值应该是0x7fffffff。
常用最值:
一般如果需要初始化最大值时,使用的是0x3f3f3f3f,得到的数为1061109567,两倍不会爆,可以适用于大多数场合。
而最小值使用的是0xc0c0c0c0,数值为-1061109568。