memset一般只用于字符型变量的赋值,而不用于整型,浮点型等变量的赋值。
但memset可以直接给整型数组赋值为 0 和 -1 .
如:
char a[5];
memset(a,'1',sizeof(a)); //正确
int b[5];
memset(b,1,sizeof(b)) //错误
memset(b,0,sizeof(b)) //正确
memset(b,-1,sizeof(b)) //正确
因为是以ASCII码形式赋值的,比如 memset(b,1,sizeof(b)) ,一个字节ASCII码值为1,二进制形式就是 00000001,那么一个int型四个字节,就是00000001000000010000000100000001,转换为十进制就是16843009 。
评论已关闭