中易网

关于C语言定义二维数组的问题

答案:3  悬赏:50  
解决时间 2021-11-24 09:09
以下能正确定义二维数组的是()(正确答案:B)
A) int a[ ][3];
B) int a[ ]={2*3}
C) int a[ ][3]={ };
D) int a[2][3]={{1},{2},{3,4}};
为什么上边这道题的答案是B,不是C?还有,“int a[ ][3]={2*3};”和“int a[ ][3]={6}"等价吗?
不好意思啊!我是在自学C语言,还没学到指针那块,麻烦大家尽量解释得浅显些,谢谢大家! 另外,刚才打错了,B选项应该是“int a[ ][3]={2*3};”
最佳答案
以下能正确定义二维数组的是 -- 以下能正确定义 数组的是 (去掉二维两字)。

A) int a[ ][3]; -- 语法错,没带初始化,不允许用 [空白],不允许 数组大小不定。

B) int a[ ]={2*3} -- 正确定义了数组,是一维数组,数组元素只有1 个,初始化数值为 2*3 ,就是 6。

C) int a[ ][3]={ }; -- 语法错,花括号里没填初始化数值。

D) int a[2][3]={{1},{2},{3,4}}; -- 语法错,数组声明为2行3列,却初始化为3行2列。 如果是 int a[3][2]={{1},{2},{3,4}}; 语法就正确了。

所以答案是 B
全部回答
首先 假如定义一个一维数组 int ary[]; 缺少了一维数组的长度 系统无法按大小分配空间; 但假如int ary[] = {1,2}; 就可以根据初始化的元素个数来把ary定义成相当于ary[2]; 这应该能懂 再次 c语言中没有多维数组的概念 我们平常说的二维数组其实是“数组的数组” c语言对多维数组的定义也是定义成 "数组的数组的数组的..." 所以 当定义二维数组int a[][4] = {1,2,3,4,5,6,7,8}; 其实是 “定义了两个以[4]为长度的数组”(这说法可能不准确) 所以在定义二维数组并初始化时 需要指明第二维的长度 好让编译器根据初始化元素的个数来确定数组的大小 文字表述欠缺专业 但 意思是这样 希望能明白 呵呵
首先明确个概念 二维数组应该是个指针 a是因为不知道确切的大小 所以编译报错 c和a一样 d是因为对二维数组赋值存在问题 b就是个指针 不管是什么数组都是一片连续的内存空间 那么就有个对应的入口地址这个明白 不管是什么数组都是这样的 二维其实是个一维的只是认为规定了下 方便吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
雄文大手的意思是什么啊?请解释下!
沈阳华晨宝马实习生的面试情况?
广数系统跟新代系统的编程区别?
怎么能让婚介所退钱啊?
长城上有什么
lol大虫子如何将打招伤害最大化
美扶村委会地址在什么地方,想过去办事
我驾驶二轮摩托与无牌无证二轮摩托发生交通事
黄圣依有几个孩子
鲇缘竹的意思是什么啊?请解释下!
前进农场地址有知道的么?有点事想过去!
原木色家具浅色地砖搭配什么颜色的乳胶漆墙面
飞生的意思是什么?飞生的释义是什么啊?
请问上课老师在校不讲学习重点,家长怎么办?
华阴哪卖泰山将军烟的是白盒的
推荐资讯
鼓浪屿上有什么好玩必去的地方
云谲的意思是什么啊?请解释下!
濮阳县农业局地址在什么地方,想过去办事
从美国运费怎么算的?
琼岛的意思是什么啊?请解释下!
我是一个HR新的,有人来面试完后,我想知道他
怪物猎人3g狗龙s套的头盔的素材中的那个石头
做20公分的钢纤维混凝土1平方多少钱
兆昴的意思是什么?兆昴的释义是什么啊?
FlashCS3打开SWF格式的文件,放在舞台上显示
泉州市公安局交警支队泉港大队办公地址在什么
心情很闷,老婆比自己挣的多,现在自己还没有
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?