若定义int a[ ][3]={1,2,3,4,5,6,7};第一维大小

如题,说出理由,不会的别瞎说我也认为是3,那为什么有那么多的人说是不确定呢!... 如题,说出理由,不会的别瞎说
我也认为是3,那为什么有那么多的人说是不确定呢!
展开
 我来答
bear830810
推荐于2016-08-11 · TA获得超过6016个赞
知道大有可为答主
回答量:2556
采纳率:0%
帮助的人:3983万
展开全部
是3没错的。
这里相当于初始化数组
int a[][3]=
{1,2,3,
4,5,6,
7,0,0}
这个初始化对于这个数组的前7个元素分别初始化为1,2,2,4,5,6,7,剩余则全部初始化为0;这个数组是2维数组,给出第2维长度为3,那么编译器根据初始化的情况对第一维长度进行判断,给出能容纳所有初始化数值的最小长度。这里编译器应该选择a[3][3],即初始化了个3X3数组,一共9个元素。

参考资料: bear830810's brain

foreverowes
2007-04-14 · TA获得超过1365个赞
知道答主
回答量:180
采纳率:0%
帮助的人:0
展开全部
/* blackxcq正解,细微之处的问题看来我还比较模糊。

int a[][3]={1,2,3,4,5,6,7};

这种写法第一维应该是不能确定的才对,你在编译时编译器会给你一个unknown size的error。

因为其可能是大于等于3的任意值,比如:
int a[3][3] = {{1,2,3},{4,5,6},{7,0,0}};
int a[4][3] = {{1,2,3,4},{5,6,7,0},{0,0,0,0}};
.
.
.

所以这样int a[][3]的第一维size不能确定,这样的写法是错误的。*/

昏,我太搞笑了,看来现代人缺的就是对自己的信任和对问题研究的认真态度。

blackxcq二次回答和bear830810正解。我演小丑呵呵!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1b646c
2007-04-14 · TA获得超过172个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:194万
展开全部
我说错了,应该是c++中第二维大小必须给定,第一维大小可以省略,因为对二维数组而言,先是列坐标先发生变化,然后行坐标才发生变化。所以一定先给定列数,这样编译器才知道从哪个数开始是第二行的,所以第一维应该为3,刚才在vc6.0下验证是正确的,不好意思,先前误导了foreverowes,注意:如果只是声明,一定要指定两个维数,要不编译器会说不知道大小,但是初始化可以省略第一维
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式