如何将数组初始化为全0?

C语言中,声明数组的语句:

int arr[100];

这样声明得到的数组里面的存储的是随机的我们不知道的数据,对用户来说就是垃圾。有许多情况我们要将数组初始化为全零的情况才能进行其他操作。

最简单的方法就是用一个循环吧数组所有元素设置为0:

int arr[100];
int i = 0;
for(i = 0 ; i < 100 ; i++)
    arr[i] = 0;  //This will make all ZERO

我们还可以利用其他几种方式做到初始化数组为0:

1、全局变量和静态变量初始化时会自动被设置为0。如果们声明全局变量,那么他在运行前会变成全0。

int arr[1024]; // This is global
int main(void)
{
    //statements
}

2、对于局部数组我们还有简写的初始化语法。如果一个数组被部分初始化,没有被初始化的元素会被自动设置为相应类型的0。这是编译器自动完成的。可以这样写:

int main(void)
{
    int arr[1024] = {0};  // This will make all ZERO
    // statements
}

3、你还可以用memset函数在程序开始时初始化数组。这条命令这在你已经修改了数组之后又想将它重置为全0特别有用。

int arr[1024];
arr[5] = 67;
memset(ZEROARRAY, 0, 1024); //This will reinitialize all to ZERO
时间: 2024-10-31 03:16:25

如何将数组初始化为全0?的相关文章

数组与字符串初始化为空的深入理解

正题 1. 一维数组初始化,可以只给一部分元素赋值,如下 int a[10] = {0,1,2,3,4}; 这样只给前面的5个元素赋值,后5个元素为0. 将char p[8]; 看作是字符数组的话, charp[8]={0}; 表示第一个元素为0,后面的7个元素也为0; 所以 char p[8] = {}和charp[8]={0}一样; 8个元素都初始化为0 2.用字符串常量来使字符数组初始化 char p[10] = "china"; 前5个元素为'c','h','i','n','a

为什么memset不能将数组元素初始化为1?

原型:extern void *memset(void *buffer, int c, int count); 功能:把buffer所指内存区域的前count个字节设置成字符c. 包含头文件:<string.h> 注意这个函数是字符串函数,所以一定要包含字符串头文件. 使用方法: int a[50]; memset(a,0,sizeof(a)); 这样呢,就将数组a内所有的值都赋成0了,sizeof是一个一元操作符,得到数组a的字节大小. 另外需要注意的是,memset函数是逐字节进行填充,所

全局变量初始化为0

#include<iostream> using namespace std; int a[5];//默认初始化为0 int main() { int b[5];//随机值 int c[5]={3};// c[0]=3,其他初始化0 return 0; } 全局变量初始化为0

【ThinkingInJava】8、对象的初始化为null,基本类型默认初始化为0

/** * 书本:<Thinking In Java> * 功能:对象的初始化为null,基本类型默认初始化为0 * 1.在定义对象的地方. * 2.在类的构造器中 * 3.在使用这些对象之前,这个叫惰性初始化 * 4.使用实例初始化 * 文件:Bath.java * 时间:2014年10月12日15:21:17 * 作者:cutter_point */ package Lesson7ReusingClasses; import static net.mindview.util.Print.*

编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型); // 存放圆的半径; ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) //创建Circle对象时将半径初始化为r

package Circle;import java.util.Scanner;public class Circle { private double Radius; public double getRadius() { return Radius; } public void setRadius(double r) { this.Radius=r; } public Circle()//无参构造方法 { this.Radius=0;//初始化为0 System.out.println("圆

memset()初始化为1的那些事

问题代码: 1 #include <stdio.h> 2 #include <string.h> 3 int main() { 4 int array[5]; 5 int a; 6 while(~scanf("%d",&a)){ 7 memset(array,a,sizeof(array)); 8 printf("%d %d\n",array[0],array[1]); 9 } 10 return 0; 11 } 程序功能:初始化数组

c/c++ int数组初始化/重置为0

1.int数组其实初始化的时候默认就是全部为0 int a[1000];int a[1000] = {0}; 以上2种写法其实都可以 注意:int a[1000] = {0};这种方法如果想把整形数组a都初始化为1就不能用了比如int a[1000] = {1};//数组其实是被初始化成1,0,0,0,0 2.int数组重置为0 如果是在定义以后想全部赋为0,用memset()函数是比较快的. int a[SIZE];memset(a, 0, sizeof(a));memset(a, 0, si

指针初始化为NULL的作用

关于空指针NULL.野指针.通用指针,首先说一下什么是指针,只要明白了指针的含义,你就明白null的含义了. 假设 有语句 int a=10;那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是 0x1000:那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元中的10.现在定义:int *p:                 p=&a:当编译器遇到语句int *p时,它也会在内存中给指针变量p分配一个内存单元,假设这个

引用类型之数组array最全的详解

Array类型 今天总结一下array类型. js中的数组是有着非常强大的功能.具有很大的灵活性,有两个方面的特点 1.数组的每一项可以保存任何的数据类型:2.数组大小可以动态的调整:看下面的例子: var one=new Array(); //空数组 var two=new Array(5) //length为5的数组 var three=new Array("double",3) //包含double和3的数组 var four=[] //用[]表示 var five=[1,2,3