二維數組或多維數組可不可以聲明的類型不一樣啊?


最近在看《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 联系我们: