c語言數(shù)組怎么存小數(shù) C語言,可變長(zhǎng)數(shù)組?
C語言,可變長(zhǎng)數(shù)組?我不會(huì)看冒泡排序的算法部分。我直接告訴你,你不知道錯(cuò)誤的原因。你的第一種寫作方式:int n=1,a[n],I=0,j=0,k=0。這里定義了n=1,在這一行中還定義了[n]。然后
C語言,可變長(zhǎng)數(shù)組?
我不會(huì)看冒泡排序的算法部分。我直接告訴你,你不知道錯(cuò)誤的原因。你的第一種寫作方式:int n=1,a[n],I=0,j=0,k=0。這里定義了n=1,在這一行中還定義了[n]。然后編譯器將在這里直接為序列a分配內(nèi)存。也就是說,確定陣列A的大小,即1。我不知道你是否學(xué)會(huì)了內(nèi)存分配。我給你一個(gè)簡(jiǎn)短的解釋。您可以在線搜索詳細(xì)信息。例如,一個(gè)具有五種整數(shù)類型的數(shù)組可以定義為[5],但也可以按如下方式獲得:int*a=(int*)malloc(sizeof(int)*5)也就是說,我們將內(nèi)存分配給一個(gè)指針以獲得一個(gè)數(shù)組。[5]的定義還要求編譯器在編譯程序時(shí)分配內(nèi)存。編譯器將根據(jù)您的代碼優(yōu)化您的程序,并將代碼轉(zhuǎn)換為匯編代碼。另外,機(jī)器代碼說得太多了。我將繼續(xù)分析修改后的代碼int n=1,I=0,j=0,K=0printf(“please input the length of the array:”)scanf(%d“,&n)int a[n];//此時(shí),由于您在聲明數(shù)組之前讀入了n,因此a是根據(jù)您輸入的數(shù)字確定的數(shù)組大小。你知道我的意思嗎?
如何聲明可變長(zhǎng)度的數(shù)組,C語言?
C99標(biāo)準(zhǔn)中增加了可變長(zhǎng)度陣列。你的編譯器無法使用它。它只能說明它不支持C99的這個(gè)特性
首先,嚴(yán)格來說,它不能有任何長(zhǎng)度。內(nèi)存是有限的,超過一定的長(zhǎng)度,是不可能保存的,雖然這個(gè)值可能超大,但總量有限。其次,所謂的任意長(zhǎng)度實(shí)際上是一個(gè)可變長(zhǎng)度數(shù)組。然后,如果您事先不知道數(shù)組的大小,則需要輸入來確定數(shù)組的大小。關(guān)鍵是要打開一個(gè)數(shù)組要存儲(chǔ)多大。一般來說,有幾種情況。1直接打開一個(gè)足夠大的數(shù)組。例如,如果您不知道它有多大,但最大值不超過1000,則可以直接打開包含1000個(gè)元素的數(shù)組。動(dòng)態(tài)分配,使用malloc動(dòng)態(tài)分配內(nèi)存。Realloc用于在可能出現(xiàn)短缺時(shí)進(jìn)行重新分配。
c語言怎么輸入任意長(zhǎng)度的一個(gè)數(shù)組?
數(shù)組的大小不能用變量表示,因?yàn)樵诰幾g和連接過程中,內(nèi)存應(yīng)該根據(jù)您設(shè)置的長(zhǎng)度為數(shù)組分配相應(yīng)的內(nèi)存空間。如果它是一個(gè)變量,就沒有辦法分配它。可以使用符號(hào)常量來解決此問題。首先,使用:#define m 100
#define N 100,然后您可以在程序中定義u[m][N]二維數(shù)組。當(dāng)它不一定是100時(shí),它可以是任何正整數(shù)。
在C語言中,所有變量空間在程序運(yùn)行開始時(shí)應(yīng)用于系統(tǒng),包括和指針。它也需要空間,除了一些動(dòng)態(tài)應(yīng)用程序方法,如malloc函數(shù)。未經(jīng)申請(qǐng),不得在航天系統(tǒng)中進(jìn)行讀寫操作。然后,如果數(shù)組的大小是一個(gè)變量定義,則在程序運(yùn)行之前無法確定數(shù)組的大小,因此無法應(yīng)用它,因此不允許這樣做。解決方案如前所述,例如:int a[n
]可以更改為
int*const a=(int*)malloc(sizeof(int)*n)
,這樣變量就可以直接用作數(shù)組,包括[1]。因?yàn)椤癧]”中的方括號(hào)運(yùn)算符只偏移其中的地址數(shù)并取一個(gè)值。例如,
a[1
]相當(dāng)于
*(a 1)
,星號(hào)后的常量修飾符表示指針聲明后不能更改,即只能指向獲取的空間,完全符合數(shù)組的性質(zhì)。
[0 15
更多答案(9)
C語言為什么不建議把變量作為數(shù)組長(zhǎng)度?
c語言中怎么實(shí)現(xiàn)可變長(zhǎng)數(shù)組,c99里面是支持的是吧?
以前版本的C99沒有它。數(shù)組大小必須是常量或常量表達(dá)式,并且C99版本添加了可變長(zhǎng)度數(shù)組