为了账号安全,请及时绑定邮箱和手机立即绑定

​93. 以下数组定义中,正确的是( )

​93. 以下数组定义中,正确的是( )

C
包小龙虾 2018-07-26 16:07:00
93. 以下数组定义中,正确的是( )。A. int a[2][3]={1,2,3,4,5,6,7};B. int a[][]={{1,2,3},{4,5,6},{7,8,9}};C. int a[2][]= {1,2,3,4,5,6};D. int a[][4]= {6};我感觉ABCD都错啊不知道选哪个
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

D 是正确的。

虽然这样声明没有指明 a 后面第一个中括号的大小,不过编译器会根据初始化列表来自动决定。

列表中只有一个数字 6,这样 int a[1][4] 就能满足了,编译器就推断出中括号里的大小为 1。

而初始化列表中元素个数不足数组大小时,数组中那些多出来的元素的初值是默认的 0,所以 a 中的初值就是 {6, 0, 0, 0}。


B 中那样声明 a 时,第二个中括号不能留空。

C 中也是同样,后面的中括号都不能留空。

查看完整回答
反对 回复 2018-07-26
  • 包小龙虾
    包小龙虾
    那A呢?
  • onemoo
    onemoo
    A 中数组一共只能容纳 2 * 3 = 6 个元素,而初始化列表中却有 7 个数,这是错误的!
?
陕西冷娃_IT男

TA贡献1条经验 获得超0个赞

只有B是正确的。

查看完整回答
反对 回复 2018-07-27
?
业余奶茶品鉴师

TA贡献260条经验 获得超388个赞

BD是对的,因为第二维度不能为空,所以C是错的,A中 2*3=6,但1-7超出了,也是错的,

查看完整回答
反对 回复 2018-07-26
  • 包小龙虾
    包小龙虾
    B的话不是只能空行不能空列吗?D的话它的行没有规定,后面的不是系统会自动清零,这样的话不是有很多种答案吗?
?
Sakura3166129

TA贡献1条经验 获得超0个赞

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

这是两种赋值方式

查看完整回答
反对 回复 2018-07-26
  • 包小龙虾
    包小龙虾
    D的话它的行没有规定,后面的不是系统会自动清零,这样的话不是有很多种答案吗?
  • 包小龙虾
    包小龙虾
    B的话不是只能空行不能空列吗?
  • 3 回答
  • 0 关注
  • 2110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信