一数组疑问

[复制链接]
2472|7
 楼主| shanshui90 发表于 2012-12-13 20:38 | 显示全部楼层 |阅读模式
char Disp[5];
Disp[]={1,2,3,4,5};
与char Disp[]={1,2,3,4,5};
为什么前一句不能执行后一句又可以。
killvx 发表于 2012-12-13 22:58 | 显示全部楼层
char Disp[]={1,2,3,4,5};是声明并初始化
char Disp[5];声明一个数组
Disp[]={1,2,3,4,5};上一句定义 此时不能初始化了 只能赋值 如Disp[0] = 1 ...

评论

开窍了,谢谢!  发表于 2012-12-14 13:22
SecondLife 发表于 2012-12-14 08:30 | 显示全部楼层
看着没明白呀。不就是一个先定义再初始化,后一个是在定义的同时初始化吗
qrsgcslqg 发表于 2012-12-14 09:08 | 显示全部楼层
同意二楼说法
阿南 发表于 2012-12-14 09:39 | 显示全部楼层
二楼说的非常正确
john_lee 发表于 2012-12-14 10:23 | 显示全部楼层
纠正2楼一点,char Disp[5]; 这个是定义而不是声明,因为编译器已经给它分配了存储,而声明仅仅是告诉编译器,系统内有这么个名字的对象(数据,函数)存在,就是说,定义只能有一次,而声明则可以有多次。

3楼,初始化必须在定义的同时进行,否则就不是初始化而是读写访问了。

评论

谢谢 确实是这样  发表于 2012-12-14 15:35
谢谢!  发表于 2012-12-14 13:18
 楼主| shanshui90 发表于 2012-12-14 13:16 | 显示全部楼层
killvx 发表于 2012-12-13 22:58
char Disp[]={1,2,3,4,5};是声明并初始化
char Disp[5];声明一个数组
Disp[]={1,2,3,4,5};上一句定义 此时 ...

谢谢!:)
laojia1 发表于 2012-12-19 21:55 | 显示全部楼层
C语言中不允许数组先定义,后整体初始化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

55

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部