1203081549 发表于 2023-4-14 10:56:05

二维数组

int a[]={{4},{},{7}}
我想知道这个二维数组赋值的错误在哪,我的理解是没有定义的地方不是会默认赋值0吗

isdkz 发表于 2023-4-14 11:01:31

您的代码中的二维数组没有明确地指定行的数量,但从初始化列表中可以推断出行数。

确实,在数组的初始化过程中,没有明确赋值的元素会被默认设置为0。这里的问题主要是初始化列表的格式。

按照您给出的代码,应该这样定义和初始化二维数组:

int a[] = { {4, 0, 0}, {0, 0, 0}, {7, 0, 0} };

您的代码中,大括号的使用方式是不正确的。这是修改后的正确代码:

int a[] = { {4}, {}, {7} };

这样定义和初始化二维数组后,数组中没有明确赋值的元素将被默认设置为0。以下是数组的具体值:

a = 4, a = 0, a = 0
a = 0, a = 0, a = 0
a = 7, a = 0, a = 0

a327904410 发表于 2023-4-14 11:05:13

每行三个值你一行只给一个

1203081549 发表于 2023-4-14 17:47:16

a327904410 发表于 2023-4-14 11:05
每行三个值你一行只给一个

但是没给的值会自动给0呀

a327904410 发表于 2023-4-15 01:15:36

1203081549 发表于 2023-4-14 17:47
但是没给的值会自动给0呀

那是当处于空的时候才会自动给吧,如果你只给一两个系统不知道你要放在哪个位置的,所以报错

a327904410 发表于 2023-4-15 01:17:51

a327904410 发表于 2023-4-15 01:15
那是当处于空的时候才会自动给吧,如果你只给一两个系统不知道你要放在哪个位置的,所以报错

不知道是不是这么理解,我没这么用过

remake111 发表于 2023-4-17 17:44:08

第二行你设为0,什么都没有应该不行

1203081549 发表于 2023-4-19 17:59:43

remake111 发表于 2023-4-17 17:44
第二行你设为0,什么都没有应该不行

我问了老师,确实不能没有,什么都没有不会默认给0

1203081549 发表于 2023-4-19 18:00:08

a327904410 发表于 2023-4-15 01:15
那是当处于空的时候才会自动给吧,如果你只给一两个系统不知道你要放在哪个位置的,所以报错

你好,我问了老师,如果一个值也不给不会默认给0

remake111 发表于 2023-4-20 12:00:39

好像不给也可以赋值0.我上机试过了
页: [1]
查看完整版本: 二维数组