c++初始化二维数组为何必须写列数?

 我来答
jackwind1987
推荐于2017-12-15 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:488万
展开全部
首先,数组定义的时候必须指定大小。指定的含义是指要么你显式地写出数组的长度,或者是让编译器自己通过初始化的元素的个数去计算长度。无论哪种,都是能确定大小的,当数组创建完成后,这个大小就无法改变了。
其次,数组的初始化可以只初始化前面一部分,例如 int a[10] = {1,2,3}。
然后,对于二维数组,如果你指定了行数和列数,那么这种情况最简单,直接用你写的行列数;如果只指定了列数,那么必须有一个初始化列表,然后就会按照列数c和初始化的元素个数n去计算行数,行数r等于n/c的上取整。但如饥戚果你不指定列数,C编译器不会给你统计初始化列表然后计算应该有多少列烂烂陵,而且没有初始化列表的根历唤本无法确定行列数。
所以必须有列数。
帐号已注销
推荐于2016-03-12 · TA获得超过110个赞
知道答主
回答量:17
采纳率:0%
帮助的人:20.6万
展开全部
百度了一下,知道有两种初始化方式,但是都是先从左到右,所以需要知道列数才能初始化每一行。行数不知道,知道列数,可以按后面的内容一行行初始化话。不知道列数就不知道一行锋凯初始化森稿多少 。
以下内容是百度到的,
二维数组的初始化分为两种,一种是顺序初始化,一种是按行初始化此基孝。
所谓按顺序初始化就是先从左向右再由上而下地初始化,即第一行所有元素都初始化好以后再对第二行初始化。
而按行初始化则是用一对大括号来表示每一行,跳过前一行没有初始化的元素,在行内从左向右地进行初始化。对于没有初始化的元素,则都是一个不确定的值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdxuelj
2013-09-14 · TA获得超过163个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:156万
展开全部
int[][]={1,2,3,4,5,6}你能说清楚这几个元素的位置?如果是int[][3]={1,2,3,4,5,6};你告饥袭就会袜兄知道是{1,2,3},{4,5,6}这两行了。你可能又要问,为什么不能这样写:int[2][]={1,2,3,4,5,6}?没办法c语言就是这样规肢饥定的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式