c语言中怎么把一维数组初始化为全零啊,不用循环

Python014

c语言中怎么把一维数组初始化为全零啊,不用循环,第1张

下面3种方法:

1.int arr[10]={0}

如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。

2.int arr[31]={}

3.用memset函数在程序开始时初始化数组。比如:

int arr[1024]

memset(arr, 0, 1024)//清零

扩展资料:

memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度。

函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。

memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 ,它通常为新申请的内存做初始化工作。

参考资料:memset-百度百科

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:

int a[3]

memset(a, 0, sizeof(a))

printf("%d", a[0])

printf("%d", a[1])

printf("%d", a[2])

3、编译器运行test.cpp文件,此时成功将数组每一项都初始化为0。

不是不能初始化,是初始化的不对。另外,数组最好用memset初始化。

(1)在定义数组时对数组元素赋以初值。如:

static int a[10]={0,1,2,3,4,5,6,7,8,9}

经过上面的定义和初始化后,a[0]=0,a[1]=1,… ,a[9]=9。

(2)初始化时可以只对一部分元素赋初值。例如:

static int a[10]={0,1,2,3,4}

定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。

扩展资料

数组的三种初始化方式

1、静态初始化

除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。例 int[] a={1,2,3}//静态初始化基本类型数组

Man[] mans={new Man(1,1),new Man(2,2)}//静态初始化引用类型数组

2、动态初始化

数组定义与为数组元素分配空间并赋值的操作分开进行。int[] a1=new int[2]//动态初始化元素,先分配空间。

a1[0]=1//给数组元素赋值

a1[2]=2

3、数组的默认初始化

数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

实例:int a2[]=new int[2]//默认值0,0

boolean[] b=new boolean[2]//默认值 false,false

String[] s=new String[2]//默认值null