二维数组的初始化...

看一段代码:main(){inta[][4]={{0,0,3},{},{0,10}};.......}这个初始化有没有错误那谁能告诉我运行为什么通不过....谁能说出来我... 看一段代码:
main()
{
int a[][4]={{0,0,3},{},{0,10}};
.......
}
这个初始化有没有错误
那谁能告诉我运行为什么通不过....谁能说出来我久佩服他...
我说...那个...最后一楼的...
a[][4]那个4表示的是列不是行...
展开
 我来答
yanhan9421
2007-12-02 · 超过23用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
绝对错了,不错你扇死我!

二维数组的初始化分为,一种为按行分段初始化,另一种为按行连续初始化。

int a[2][3]={{5,6},{7,8},{9,10}};
这是第一种,
int a[2][3]={5,6,7,8,9,10};
这是第二种。
a这个二维数组一共2行3列共6个存储空间,图形为:

5 6
7 8
9 10
正好占满。
而且C语言默认可以省略行数,但不能省略列数

你看看你的初始化
int a[][4]={{0,0,3},{},{0,10}};
行数省略是没有任何问题的。
但是你是按行分段初始化
第一行0 0 3
第二行
第三行0 10
注意了,你只对其中3行进行了初始化,第4行丢了。
所以a是一个半初始化的数组,C编译系统绝对不承认!
yhy19820816
推荐于2017-11-25 · TA获得超过304个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:347万
展开全部
我刚运行了下,确实运行不了,或许老谭的书这点也没有得到证实吧.int a[][4]={{0,0,3},{0},{0,10}};就是对的.
从一维数组的角度理解吧:第一行你为什么定义成了{0,0,3}而不定义成{,,3},同样你也不能定义成{0,0,3,}二维是同样的道理,如果在这个数的后面还要赋值,就不能为空,如果后面不用再赋值了,就全省略了,从它开始后面代表0比如:int a[3][4]={{1}};
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BIRDCHILD
2007-12-02 · 超过15用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:47.9万
展开全部
这肯定是对的,在C语言中,二维数组中维数下标必须显性写出,不然编译都通不过的。
int a[][4]={{...},{...},{...},.....}是对的,
int a[4][]={{...},{...},{...},{...}}时错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
史前5000年
2007-12-02 · TA获得超过272个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:252万
展开全部
肯定有问题了,不能为空
后面也不相等!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flashwenxin
2007-12-02 · 超过13用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:46.8万
展开全部
没有问题 可以这样初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式