C语言——将数组元素全部初始化

memset() 函数

memset() 函数在 C 语言中用于将一段内存空间中的每个字节都设置为给定的值。该函数的原型定义如下:

void *memset(void *s, int c, size_t n);

其中,s 是指向要设置的内存空间的指针;c 是要设置的值,以整数形式给出;n 是要设置的字节数。

下面是一个示例程序,演示了如何使用 memset() 函数将一个字符数组中的元素都设置为 0:

#include <stdio.h>
#include <string.h>

int main()
{
    char str[50];

    /* 将 str 数组的所有元素都设置为 0 */
    memset(str, 0, sizeof(str));

    printf("str = %s\n", str);
    return 0;
}

在上面的示例程序中,memset() 函数将 str 数组中的所有元素都设置为 0,然后输出该数组的内容。

需要注意的是,memset() 函数是按字节设置内存的,因此在使用该函数时需要确保给定的参数类型正确。例如,如果要将一个整型数组中的元素都设置为 0,应该将 n 参数设置为数组长度乘以每个元素的字节大小,而不是数组长度。

【相关知识】

sizeof() 函数

sizeof() 函数用于获取 str 数组的大小(以字节为单位),然后将其作为 memset() 函数的第三个参数传递。sizeof() 函数是一个运算符,它可以在编译时计算给定变量或类型的大小。其语法如下:

sizeof(type)
sizeof expression

其中,type 是数据类型,例如 intfloatchar 等;expression 是要计算大小的表达式,例如变量、数组、结构体等。

在本例中,sizeof(str) 计算 str 数组的大小,返回值为数组中元素的总数乘以每个元素的字节大小。因为 str 是一个 char 类型的数组,每个元素占用 1 个字节,所以 sizeof(str) 的返回值就等于数组的长度。将该值作为 memset() 函数的第三个参数传递,可以确保该函数会将整个数组都设置为指定的值,而不会留下未设置的部分。

需要注意的是,sizeof() 函数不会在运行时计算表达式的值,而是在编译时计算。因此,使用 sizeof() 函数可以确保代码在不同的平台上都能正确运行,并且避免了手动计算数组大小的错误风险。

猜你喜欢

转载自blog.csdn.net/m0_52177571/article/details/129707274