二维数组或多维数组可不可以声明的类型不一样啊?


最近在看《C陷阱与缺陷》第三张:
比如:  int calendar[12][31]
这里的意思是该元素有12个数组元素,每个元素都是有31个整形元素。
       然后   int calendar[12][31][20]


    这里的[31][20]都是int类型的 可不可以 初始化  里面的元素不是一种类型的啊? 比如[31]是int   [20]是char的
 能理解我的意思吗  我说的不太清楚

10 个解决方案

#1


没明白你的意思。

多维数组,就是数组的数组。在一个数组里面,元素类型是一致的。

#2


多维数组其实也是一维数组模拟的
C语言中的数组和javascript中的不一样,js是弱类型而C语言是强类型的

#3


得一样,不然数组的数据类型乱七八糟,这也违反了数组定义的规则。

#4


int calendar[12][31][20]
类型是int,不可能再把其他类型的值赋给它的元素

#5


明确的回答:不能!

#6


引用 4 楼 lbjmd 的回复:
int calendar[12][31][20]
类型是int,不可能再把其他类型的值赋给它的元素

错误,或者至少不明确。
int calendar[12][31][20]声明的calendar的类型是int[12][31][20];这个数组类型的元素类型是int[31][20],长度是12;数组类型int[31][20]的元素类型是int[20],长度是31;数组类型的int[20]的元素类型是int,长度是20。粗略点说,“多维”数组calendar的最低维元素类型是int还是可以理解的。

#7


int calendar[12][31][20]
该元素有12个数组元素,每个元素都是一个整形二维数组,这个二维数组的是x[31][20],他有31个元素,每个元素都有20个元素....

所以你那样不可以...

#8


多维数组明显不是这么回事
像2维数组--矩阵
[31]是int [20]是char代表什么?

#9


LZ是说的能存多种类型的数组吧。
C语言是强类型的,不能这样做。
但是可以通过void *来模拟

#10


int calendar[2][3][4]= { { {0,1,2,3},{ 4,5,6,7}, {8,9,0,1} }, { {2,3,4,5}, {6,7,8,9}, {0,1,2,3} } }

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: