C语言初始化数组的三种方法

使用 memset() 函数

#define SIZE 100

// eg1. 初始化一个大小为 100 的字符数组
// memset 执行后的效果是将 test 数组的元素全部初始化为 0
void func1()
{
    char test[SIZE];
    memset(test, 0, SIZE);
}

// eg2. 初始化一个 int 类型的数组
void func2()
{
    int test1[SIZE];
    memset(test1, 0, sizeof(int) * SIZE); // 这里的 SIZE 是数组大小, 需要多少替换下就可以了
}

C 语言库函数 - memset()

使用 memset() 需要引入头文件 #include <string.h>

描述

C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。

声明

void *memset(void *str, int c, size_t n)

参数

  • str -- 指向要填充的内存块。
  • c -- 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。
  • n -- 要被设置为该值的字符数。

返回值

该值返回一个指向存储区 str 的指针。

使用 {0} 初始化

这种方法可能存在兼容性问题. 效率和 memset 类似, 较高.

#define SIZE 100

void func()
{
    char test[SIZE] = {0};
}

使用 for 循环

效率最低.

#define SIZE 100

void func()
{
    int i = 0;
    char test[SIZE];
    for (i = 0; i < SIZE; i++)
    {
        test[i] = 0;
    }
}

参考: https://www.cnblogs.com/fnlingnzb-learner/p/8057257.html

原文地址:https://www.cnblogs.com/fanlumaster/p/14000163.html