c語言可變數(shù)組怎么定義 c語言數(shù)組名值可變嗎?
c語言數(shù)組名值可變嗎?以前版本的C99沒有。數(shù)組大小必須是常量或常量表達(dá)式。C99版本只添加了一個可變長度的數(shù)組MSDN中的數(shù)組聲明如下所述:保持?jǐn)?shù)組最大大小所需的整數(shù)類型是size 的大小。在頭文件
c語言數(shù)組名值可變嗎?
以前版本的C99沒有。數(shù)組大小必須是常量或常量表達(dá)式。C99版本只添加了一個可變長度的數(shù)組
MSDN中的數(shù)組聲明如下所述:保持?jǐn)?shù)組最大大小所需的整數(shù)類型是size 的大小。在頭文件STDDEF.H中定義,size 是一個無符號整數(shù),范圍為0x00000000到0x7cffff。也就是說,只要硬件條件允許,數(shù)組的大小可以是0x7cffff(2G字節(jié))。數(shù)組占用的空間為:count*sizeof(type)。Count是數(shù)組元素的數(shù)目,sizeof(type)是元素占用的字節(jié)數(shù)。如果定義的數(shù)組空間超過2G,VC編譯器將報告一個錯誤:致命錯誤c1126:“2G”:自動分配超過。。。因此,當(dāng)實(shí)際編程確實(shí)需要使用更大的數(shù)組時,應(yīng)該使用動態(tài)定義方法(newmalloc等)。
c語言中數(shù)組的大小可以改變嗎?
這是個好問題。目前,我能想到的是使用鏈表結(jié)構(gòu)而不是數(shù)組,或者更準(zhǔn)確地說,使用alloc函數(shù)來構(gòu)建鏈表。
與數(shù)組不同的是,數(shù)組的元素在內(nèi)存中是一個連續(xù)的區(qū)域,而鏈表的節(jié)點(diǎn)在內(nèi)存中是一個離散的區(qū)域,因此鏈表的運(yùn)算效率比數(shù)組要低一些。
如果您有其他方法,可以留言一起討論!