数组的初始化问题

来源:百度知道 编辑:UC知道 时间:2024/04/29 16:37:52
main()
{
int a[5];
a[5]={1,2,3,4,5};
}
这样为啥不对啊?奇怪了..

这么写是对的:
int a[5]={1,2,3,4,5};
在初始化时,相当于将数组a的成员用1,2,3,4,5进行赋值

但是这么写就不对了:
int a[5];
a[5]={1,2,3,4,5};

错在两个地方:
1. 此时a[5]是数组a的一个具体成员(由于从下标0开始计数,所以a[5]是数组a的第6个成员),所以不能用{1,2,3,4,5}赋值,只能给定具体的值,例如5
2. 数组a在声明时声明了5个成员,也就是a[0]~a[4],所以a[5]是数组访问越界了,这个也是错误的

int a[5]={1,2,3,4,5};
这样是定义的时候初始化

定义时没初始化,就不能整体赋值了
你这样写当然不对

你这样是把1,2,3,4,5赋值给a[5]
而a[5] 只是一个int型 不可以接那么多
要改为int a[5]={1,2,3,4,5};

初始化
赋值
是不同的概念
希望楼主每天对这两个概念默念一遍
在任何基础C编程书中都有介绍这两个概念的