首页 理论教育 C语言程序设计(第3版):初始化一维数组

C语言程序设计(第3版):初始化一维数组

时间:2023-11-23 理论教育 版权反馈
【摘要】:有如下程序:int a[3]={1,2,3}是数组的初始化。所谓初始化,是指在定义时指定初始值,编译器把初值赋给数组变量。如:int a[]={10,20,30,40,50};系统将根据赋初值的个数确定数组长度。上述大括号内共有5个初值,说明数组a的元素个数为5,即数组长度为5。2)可以只给一部分元素赋初值例如:int a[10]={0,1,2,3,4};定义a数组有10个元素,但花括号中只提供了5个初值,表示只给前5个数组元素a[0]~a[4]赋初值,后面5个元素a[5]~a[9] 未指定初值,系统自动赋0。

C语言程序设计(第3版):初始化一维数组

【例7.3】有如下程序:

int a[3]={1,2,3}是数组初始化。所谓初始化,是指在定义时指定初始值,编译器把初值赋给数组变量

1.在编译阶段赋初值

1)对全部数组元素赋初值

例如:

int a[6]={1,2,3,4,5,6};

数组元素的个数和花括号中初值的个数是相同的,并且从左到右花括号中初值依次赋给每个数组元素。即a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6。

当给数组全部元素赋初值时,可以省略数组长度。如:

int a[]={10,20,30,40,50};

系统将根据赋初值的个数确定数组长度。上述大括号内共有5个初值,说明数组a的元素个数为5,即数组长度为5。

2)可以只给一部分元素赋初值

例如:(www.xing528.com)

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

定义a数组有10个元素,但花括号中只提供了5个初值,表示只给前5个数组元素a[0]~a[4]赋初值,后面5个元素a[5]~a[9] 未指定初值,系统自动赋0。但若定义a数组为int a[10]={0};,则系统默认全部元素初值为0。

2.在运行阶段赋初值

3.注意事项

当程序不给数组指定初始值时,编译器作如下处理:(1)编译器自动把静态数组的各元素初始化为0。

(2)编译器不为动态数组自动指定初始值。

(3)如果全部元素均指定初值,定义中可以省略元素的个数。

例如:[static] int a[5] = {1,2,3,4,5};可以写为:[static] int a[ ] = {1,2,3,4,5};

int a[10]={0};等价于 static int a[10];但不等价于int a[10];

int a[5]={1,2};等价于 int a[5]={1,2,0,0,0};但不等价于int a[ ]={1,2};

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈