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

来源:6-10 练习题

牛牛和虫虫

2015-08-24 08:39

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

写回答 关注

4回答

  • 才疏气短啊
    2017-04-13 23:04:14

    1  2   3  

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

  • onemoo
    2015-08-24 14:27:39

    这样定义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来验证。

    onemoo 回复Zh012

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

    2015-08-26 13:21:56

    共 2 条回复 >

  • 刘伶
    2015-08-24 10:23:16

    int真的可以么?

  • DearZzg
    2015-08-24 09:07:26

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题