C語言中有沒有3維陣列或者更高維的陣列?

時間 2021-06-03 08:00:41

1樓:沐雨澄風

c語言事存在三維陣列的

比如char s[3][4][1024]代表乙個三行四列的每乙個元素都是乙個字串的乙個陣列。

更高維不知道hh

2樓:北極

首先:有三維或者更高維度的陣列,C語言規範中沒有指定最高可以到多少,翻了一遍C99沒有找到類似的規定。

用GCC實驗了一下,GCC不檢測維數多少,而是限制陣列所佔的記憶體總量,只要不超INT_MAX+1就都可以:

以下是GCC4.8.1的原始碼

/* The above overflows when size does not fit

in index_type.

While a size of INT_MAX+1 technically shouldn't

cause an overflow (because we subtract 1), handling

this case seems like an unnecessary complication. */if(

TREE_CODE

(size)==

INTEGER_CST&&!

int_fits_type_p

(size

,index_type)){

if(name

)error_at

(loc

,"size of array %qE is too large"

,name

);else

error_at

(loc

,"size of unnamed array is too large"

);type

=error_mark_node;

C語言中多維陣列是否慢於一維陣列?

土地測量員 對於在全域性或者棧上分配的多維陣列 也就是位址是連續的 都可以看成是一維陣列模擬出來的,要訪問某個元素肯定存在著計算偏移量的過程,不過是交給編譯器幫你來完成這個過程了 其實可以看成語法糖的樣子?所以它比起一維是要慢一點。不過很多時候,某些東西從邏輯上來講就是多維的,你用一維的思路無法解決...

c語言中,如果main函式的末尾沒有return語句將會有什麼影響

日天山君 首先,如果是微控制器這種沒有作業系統的,直接void main 沒有引數也不需要返回值。然後才輪到在作業系統上執行的C語言程式,在int main最後寫乙個return,其目的是為了將執行結果狀態告訴作業系統 或父程序 是執行成功呢還是不成功。然後可以根據執行結果狀態採取不同的方案,是結束...

漢語方言中有沒有「環形隔離」?

有,比如樓上舉的濱阜小片可以和建鹽交流,建鹽可以和泰如交流,濱阜和泰如不能交流,揚州可以和淮安交流,也可以和泰如交流,但讓普通淮安人聽泰如話恐怕不能正常交流 蘓北電鑽殺人狂 內鬥省到處都是啊,不然江蘇歧視網是怎麼來的鹽城內部 濱阜 建鹽 泰如 南通內部 泰如 南通 四甲 崇啟海 南通是ABCD三組兩...