<求助>二维数组初始化问题
谭浩强教授所著《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有问题?还是老谭错了?
----------------解决方案--------------------------------------------------------
大家发表一下意见啊
----------------解决方案--------------------------------------------------------
vc上也运行不了,一般晚上人多,等到晚上看看高手怎么说吧
----------------解决方案--------------------------------------------------------
我也翻了下老谭的这书
跟你描述的一样
我VC没编译通过
只有int a[3][4]={{1},{0},{9}}
补了0才行,不知道为什么了
----------------解决方案--------------------------------------------------------
感谢楼上热心的兄弟们!
希望得到确切的回答.
----------------解决方案--------------------------------------------------------
int a[][4] = {
{0,0,3},
{0},
{0,10}
}; /* 这样就可以可 */
/* 初始化数组时,数组中未被指定初始化的元素自动初始为 0 */
----------------解决方案--------------------------------------------------------
老谭的书怎会这样(我用的第一版从没出现这个问题)哎:现在的书.
----------------解决方案--------------------------------------------------------
是啊,要补零啊.学习中....
----------------解决方案--------------------------------------------------------
用GCC试或者查标准,没什么好问的。
上面两件事我都做了,GCC上可以编译过,标准上没有明确提及这样的初始化方法。
----------------解决方案--------------------------------------------------------
看来前人的总结也未免有些疏漏之处啊!
----------------解决方案--------------------------------------------------------