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赋值,也是可以成功的。
本文详细解析了C语言中的memset函数,重点介绍了如何使用该函数对int数组等不同类型数组进行整体初始化,包括初始化为0和-1的具体操作。同时,文章解释了为什么memset只能将数组初始化为这两个特定值的原因,并探讨了按字节对自身类型数组进行初始化的可能性。
989

被折叠的 条评论
为什么被折叠?



