在C语言编程中,定义一个数组时要不要初始化

在C语言编程中,定义一个数组时要不要初始化,第1张

不是不能初始化,是初始化的不对。另外,数组最好用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

你的SqList结构包含的元素是一个100个int类型的数组,和一个int变量。

在初始化函数中,首先参数sqlist L,应该改成Sqlist L

然后你给L->Elem_array进行赋值 *** 作是不对的,因为Elem_array是数组首地址,是个常量,不能进行赋值 *** 作。而且本身结构里面定义的是数组元素,所以已经有空间了,根本不需要再另外申请内存。如果需要动态申请内存,就把Elem_array声明为指针类型:ElemType pElem_array

以上就是关于在C语言编程中,定义一个数组时要不要初始化全部的内容,包括:在C语言编程中,定义一个数组时要不要初始化、C语言数据结构顺序表初始化程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9995422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存