memset怎么用
的有关信息介绍如下:memset位于string.h,用于给指定的存储区域设置设定的值,完整的声明形式为:void * __cdecl memset(void *_Dst,int _Val,size_t _Size);通常用于初始化操作,比如数组清零等。
可以在string.h头文件找到memset的详细声明形式。
从声明中可知,memset的第一个参数为void类型的指针,也就是说它可以接收任意类型的指针,编译器会将其强制转换为void类型。第二个参数为设定的初始化值,第三个参数为要初始化的字节数。
使用memset初始化基本类型的数组:
#include
int main(int argc, char *argv[]) {char str;int a;float f;memset(str, 0, 100);//初始化char数组str memset(a, 0, 400);//初始化整形数组a,适用于4个字节的int型环境 memset(f, 0, 400);//初始化浮点型数组f,适用于4个字节的float型环境 return 0;}
由于C语言标准并没有对基本类型的具体长度做严格的要求,所以第三个参数直接给数值会减小程序的可移植性,通常采用sezeof运算符:
memset(str, 0, sizeof(str));//初始化char数组str memset(a, 0, sizeof(a));//初始化整形数组amemset(f, 0, sizeof(f);//初始化浮点型数组f
类似的,可以使用sezeof获取用户定义类型的长度,使用memset对其初始化。
如果愿意,也可以使用memset实现赋值语句的功能,像下面这个例子使用memset给char型数组c逐个赋值。
可以看到,这和赋值语句效果一样的,不过这种操作显得有点啰嗦。