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

int x[][3]={1,2,3,4};

请问int x[][3]={1,2,3,4};这样定义的数组是什么样的?

正在回答

5 回答

1  2   3  

4  0   0             x[0][0]=1      x[0][1]=2        x[0][2]=3       x[1][0]=4

0 回复 有任何疑惑可以回复我~

这样定义x为一个数组,其元素是“含有3个int的数组”。后面braces initializer中的数会依次赋予数组的各个元素,所以1 2 3分给了x的第一个元素,该元素就是一个{1, 2, 3}数组。还剩一个4,但x的第二个元素仍是一个“含有3个元素的数组”,所以x的第二个元素就是{4, 0, 0}数组(数组初值不足的用0补全)。 整个x数组含有2个元素,它们是含有3个元素的数组,x共有6个int,这点你可以用sizeof x来验证。

7 回复 有任何疑惑可以回复我~
#1

Zh012

sizeof 如何使用? 是直接加上数组的名称吗?返回值是数组中含有的元素个数?如果是多维数组,返回的是行数还是总的元素个数? sizeof 之后还可以加其他数据类型(还是应该叫数据结构?白痴问题,但真的不懂)吗?
2015-08-26 回复 有任何疑惑可以回复我~
#2

onemoo 回复 Zh012

不知道课程中讲没讲这个。 sizeof是个运算符,后面可以接变量名或类型(类型必须写在括号中),运算结果是该变量/类型所占用的字节数。 你想得知x含有多少个int,可以这样写 sizeof x / sizeof(int),就是用x占用的字节总数除以每个int占用的字节数来得出x含有多少个int。 所谓多维数组和普通数组没有区别,你的这个x就可以算是多维数组。
2015-08-26 回复 有任何疑惑可以回复我~

int真的可以么?

0 回复 有任何疑惑可以回复我~

int *x[3] 这样定义不是没事找事吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

int x[][3]={1,2,3,4};

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信