memset() 是一个 C 语言中的库函数,用于将指定的内存块设置为指定的值。要在 C 代码中使用 memset() 函数,你需要包含 <string.h> 或
它通常用于对数组、结构体或其它内存块进行初始化或清零操作。
函数原型
void *memset(void *ptr, int value, size_t num);
参数
ptr:指向要设置值的内存块的指针。
value:要设置的值。value 和 ptr 指向的内存块的类型应兼容。一般情况下,可以使用整数或字符值作为 value。
num:要设置的字节数(或元素个数)。通常使用 sizeof() 运算符来确定要设置的字节数或元素个数。
用途
memset() 函数的主要功能是将指定的内存块的每个字节设置为给定的值。
对数组进行清零
int myArray[10];
memset(myArray, 0, sizeof(myArray));
对结构体进行初始化
typedef struct
{
int id;
char name[20];
float salary;
} Employee;
Employee emp;
memset(&emp, 0, sizeof(Employee));
设置特定的值
char buffer[100];
memset(buffer, 'A', sizeof(buffer));
这个示例展示了如何使用 memset() 函数将一个字符数组 buffer 的所有元素设置为字符 'A'。我们使用 sizeof() 运算符确定数组的大小,并将其作为 num 参数传递给 memset() 函数。
由于 memset() 函数是按字节进行复制的,因此赋值int 或者 longlong 类型要注意。
普通数组我们只需要学习两个初始值就可以了,一个是0,一个是0x3f
0: 0是最简单的了,就是把全部字节都置零,那么无论是int还是long long都可以全部初始化为0了
0x3f: 0x指的是十六进制的意思,说明 3f 是一个十六进制数
总的来说,我们需要初始化为 0 的时候就用 0,需要初始化为最大值的时候就用0x3f
fill()函数
fill函数是C++标准库中的一个算法函数,用于将指定范围内的元素赋值为给定的值。
fill( first, last, value );
三个参数:
first:表示要填充的范围的起始迭代器(表示开始位置),指向要填充的第一个元素。
last:表示要填充的范围的结束迭代器(表示结束位置的下一个),指向要填充的最后一个元素的下一个位置。
value:表示要赋给范围内的每个元素的值。
函数功能
fill函数会将范围 [ first, last ) 内的每个元素都设置为 value。
first,last 均表示数组或对象的下标。
fill(arr, arr + 5, 0);
评论区