当前位置: 代码迷 >> C语言 >> <求助>二维数组初始化问题
  详细解决方案

<求助>二维数组初始化问题

热度:24   发布时间:2008-02-29 15:40:48.0
<求助>二维数组初始化问题
谭浩强教授所著《C程序设计(第二版)》上第七章关于“二维数组初始化”有这样两个例子:
1、“可以对第2行不赋初值:int a[3][4]={{1},{},{9}};”
2、“在定义时可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。如:
     int a[][4]={{0,0,3},{},{0,10}};
     这样的写法,能通知编译系统;数组共有3行。”
我标出的红色部分在turbo c上运行有错误,提示为“initializer syntax error in function main”――即初始化错误。
我想请教大家,是turbo c有问题?还是老谭错了?
搜索更多相关的解决方案: 谭浩强  turbo  int  分行  定义  

----------------解决方案--------------------------------------------------------
大家发表一下意见啊
----------------解决方案--------------------------------------------------------
vc上也运行不了,一般晚上人多,等到晚上看看高手怎么说吧
----------------解决方案--------------------------------------------------------
我也翻了下老谭的这书
跟你描述的一样
我VC没编译通过
只有int a[3][4]={{1},{0},{9}}
补了0才行,不知道为什么了
----------------解决方案--------------------------------------------------------
感谢楼上热心的兄弟们!
希望得到确切的回答.
----------------解决方案--------------------------------------------------------
int a[][4] = {
    {0,0,3},
    {0},
    {0,10}
};         /* 这样就可以可 */

/* 初始化数组时,数组中未被指定初始化的元素自动初始为 0 */
----------------解决方案--------------------------------------------------------
老谭的书怎会这样(我用的第一版从没出现这个问题)哎:现在的书.
----------------解决方案--------------------------------------------------------
是啊,要补零啊.学习中....
----------------解决方案--------------------------------------------------------
用GCC试或者查标准,没什么好问的。
上面两件事我都做了,GCC上可以编译过,标准上没有明确提及这样的初始化方法。
----------------解决方案--------------------------------------------------------
看来前人的总结也未免有些疏漏之处啊!
----------------解决方案--------------------------------------------------------
  相关解决方案