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