u
memset
是
C/C
++
语言初始化函数
。
u
作用:用来
对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行
初始化
u
库文件:
#include<
cstring
>
u
初始化:
memset
(void
*s,
int
ch,size_t
n);
中
ch
实际范围应该在
0~~255
,因为该函数只能取
ch
的后八位赋值给你所输入的范围的每个
字节。
u
比如
:
memset
(a
,-
1,sizeof(a))
与
memset
(a,511,sizeof(a))
所赋值的结果是一样的都为
-1;
因为
-1
的二进制码为
(11111111 11111111 11111111 11111111)
而
511
的二进制码为
(00000000 00000000 00000001 11111111)
后八位都为
(11111111)
,所以数组中每个字节,如
a[0]
含四个字节都被赋值为
(11111111)
,其结果为
a[0](11111111 11111111 11111111 11111111)
,即
a[0]=-1
,因此无论
ch
多大只有后八位二进制有效,而后八位二进制 的范围在
(0~255)
中改。而对字符数组操作时则取后八位赋值给字符数组,其八位值作为
ASCII
码。