迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

在 C 语言中将数组初始化为 0

作者:迹忆客 最近更新:2023/05/05 浏览次数:

本篇文章介绍了如何在 C 语言中将数组初始化为 0。

C 语言中数组的声明如下。

char ZEROARRAY[1024];

它在运行时在全局范围内变成全部为 0。如果它是一个本地数组,有一个简单方法。数组的声明和初始化如下。

char ZEROARRAY[1024] = {0};

如果一个数组被部分初始化,未初始化的元素将收到相关数据类型的值 0。编译器将用 0 填充未写入的元素。

如果没有指定初始化器,那么具有静态存储的对象将初始化为 0,声明如下。

static int myArray[10]; 

如果初始化列表为空或者在初始化列表中指定了 0,数组将被初始化为 0。声明如下:

int number[5] =  { };
int number[5] =  { 0 };

初始化数组最简单的方法是遍历所有元素并将每个元素设置为 0

#include <stdio.h>

int main(void)
{

    int numberArray[10], counter;

    for(counter = 0 ; counter < 5 ; counter++)
    {
        numberArray[counter] = 0;
    }
    printf("Array elements are:\n");
    for(counter=0; counter<5; counter++)
    {
        printf("%d",numberArray[counter]);
    }
    return 0;
}

输出:

Array elements are:
00000

使用 C 的库函数 memset()

函数 memset()string.h 中的一个库函数。它用来用一个特定的值填充一个内存块。

memset() 函数的语法如下。

void *memset(void *pointerVariable, int anyValue, size_t numberOfBytes);

其中,

  • pointerVariable 是指向要填充的内存块的指针变量。
  • anyValue 是要设置的值。这是一个整数值,但函数使用这个值的无符号 char 转换来填充内存块。
  • numberOfBytes 是要设置的值的字节数。

该函数返回一个指向内存区 pointerVariable 的指针。

完整的程序如下。

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

void printArrayvalues(int anyArray[], int anyNumber)
{
    int index;
    for (index=0; index<anyNumber; index++)
        printf("%d ", anyArray[index]);
}

int main(void)
{
    int number = 10;
    int arrayValues[number];
    
    memset(arrayValues, 0, number*sizeof(arrayValues[0]));
    printf("Array after memset()\n");

    printArrayvalues(arrayValues, number);

    return 0;
}

输出:

Array after memset()
0 0 0 0 0 0 0 0 0 0 

C 语言中初始化数组为 0 以外的值

gcc 将一个数组初始化为 0 以外的值,如下所示。

int myArrayValues[1024] = { [ 0 ... 1023 ] = -1 };

数组中的每个成员都可以通过省略维度来显式初始化。声明如下。

int myArrayValues[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

编译器将从初始化器列表中推导出维度,对于多维数组,只能省略最外层的维度。

int myPoints[][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9} };

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中的 i++ 与++i

发布时间:2023/05/07 浏览次数:83 分类:C语言

本文演示了如何在 C 语言中使用前缀增量与后缀增量运算符。C 语言中++i 和 i++ 记号的主要区别

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便