數(shù)組快速去重 C語(yǔ)言為什么不建議把變量作為數(shù)組長(zhǎng)度?
C語(yǔ)言為什么不建議把變量作為數(shù)組長(zhǎng)度?數(shù)組的大小不能用變量表示,因?yàn)樵诰幾g和連接過(guò)程中,內(nèi)存應(yīng)該根據(jù)您設(shè)置的長(zhǎng)度為數(shù)組分配相應(yīng)的內(nèi)存空間。如果它是一個(gè)變量,就沒(méi)有辦法分配它??梢允褂梅?hào)常量來(lái)解決此問(wèn)
C語(yǔ)言為什么不建議把變量作為數(shù)組長(zhǎng)度?
數(shù)組的大小不能用變量表示,因?yàn)樵诰幾g和連接過(guò)程中,內(nèi)存應(yīng)該根據(jù)您設(shè)置的長(zhǎng)度為數(shù)組分配相應(yīng)的內(nèi)存空間。如果它是一個(gè)變量,就沒(méi)有辦法分配它??梢允褂梅?hào)常量來(lái)解決此問(wèn)題。首先,使用:#define m 100
#define N 100,然后您可以在程序中定義u[m][N]二維數(shù)組。當(dāng)它不一定是100時(shí),它可以是任何正整數(shù)。
在C語(yǔ)言中,所有變量空間在程序運(yùn)行開(kāi)始時(shí)應(yīng)用于系統(tǒng),包括和指針。它也需要空間,除了一些動(dòng)態(tài)應(yīng)用程序方法,如malloc函數(shù)。未經(jīng)申請(qǐng),不得在航天系統(tǒng)中進(jìn)行讀寫(xiě)操作。然后,如果數(shù)組的大小是一個(gè)變量定義,則在程序運(yùn)行之前無(wú)法確定數(shù)組的大小,因此無(wú)法應(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ì)。
你好,我[不怕失敗,也不怕成功],我很高興為你回答。普通畢達(dá)哥拉斯數(shù)組
1。(3,4,5)
2. (6,8,10)
3. (5,12,13)
4. (8,15,17)
5. (7,24,25)
6. (9,40,41)
7. (10,24,26)
8. (11,60,61)
9. (12,35,37)
10. (48,55,73)
11. (12,16,20)
12. (13,84,85)
13. (20,21,29)
14. (20, 99, 101)
15. (60, 91, 109)
16. (15、112、113)17、(17144145)18、(19180181)請(qǐng)LZ多采用專(zhuān)業(yè)科普知識(shí),歡迎關(guān)注我。如果你喜歡我的回答,也請(qǐng)給我表?yè)P(yáng)或轉(zhuǎn)發(fā),你的鼓勵(lì)是支持我寫(xiě)下來(lái)的動(dòng)力,謝謝。