memset函数本来是C语言中对char数组的整体赋值函数。
但是我们一般都是要用它来对int数组或者其他类型的数组进行整体初始化。
具体操作如下:
- 初始化为0
int array[10];
memset(array, 0, sizeof(array));
- 初始化为-1
int array[10];
memset(array, -1, sizeof(array));
但是!
十进制数的初始化就仅限于此了,即只能赋值为0/-1。
是因为:
memset是按字节赋值的,对于char类型来说刚好一个字节长度,可以随便赋值。而对于int型来说,0和-1的32位补码分别是全0和全1,所以跟char类型的一样。
但是其实按字节对自己类型的数组进行memset赋值,也是可以成功的。