概述
memset()函数在C中是在string.h头文件里定义的,在C++中是在cstring头文件里定义的。
其定义是 void *memset(void *s,int c,size_t n);
功能是将内存空间 s 的前 n 个字节的值设为值 c。该函数常被用于对数组进行清零操作。
尽管变量 c 是 int 类型,但是memset是向以字节为单位的内存单元中填充值,计算机中一个内存单元的大小是一个字节,一个内存单元中能够放入的数值范围是0到0xff,所以当 c 的值大于255时,c的高16位被舍弃,只有低8位的值被填入。即填入的值是 c % 256 ,%表示求余数。
在对数组元素使用memset时特别需要注意:memset在填充时是按照字节顺序填充的,而不是按数组元素填充。用memset对字符数组赋初始值很简单,比如
char a[100];
memset(a, '