memset函数详解

memset函数为初始化函数,可以将一段连续的内存初始化为某个值。
但它是以字节为单位进行初始化的。
memset函数的一般使用格式为

memset(首地址,,sizeof(地址总大小));

比如对数组a赋值

memset(a,0,sizeof(a));

重点
memset以字节为单位进行初始化,这句话是什么意思呢?就是说它进行初始化时并不关心你要初始化的数组是什么类型的,它均以字节为单位进行初始化。
比如你的数组是int型的。int为4字节。但是memset以字节进行初始化

memset(a,1,sizeof(a));

在a中每个元素占 4字节
比如int型的0为 0x00000000
int 型的最大值为 0x7FFFFFFF
0xF = 0b1111 占四位
1字节为8bit ,所以两位为1字节
使用memset进行初始化后会变为 0x01010101 也就是16843009
所以一下两种初始化效果是一样的

memset(a,-1,sizeof(a));
memset(a,255,sizeof(a));
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐