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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM