c語言中什么是數(shù)組
c語言中什么是數(shù)組
數(shù)組是計(jì)算機(jī)編程語言上,對(duì)于“Array”的中文稱呼。將相同數(shù)據(jù)類型的元素按一定順序排列的集合,把有限個(gè)類型相同的變量用一個(gè)名字命名,然后用編號(hào)區(qū)分他們的變量的集合,這個(gè)名字成為數(shù)組名,編號(hào)成為下標(biāo)。組成數(shù)組的各個(gè)變量成為數(shù)組的分量,也稱為數(shù)組的元素,有時(shí)也稱為下標(biāo)變量。數(shù)組是在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來的一種形式。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。
c語言數(shù)組
在C語言中, 數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。
關(guān)于可變長(zhǎng)數(shù)組(VLA)的問題:原來的C標(biāo)準(zhǔn)中是不允許可變長(zhǎng)數(shù)組出現(xiàn)的,但是在C++中,加入了對(duì)VLA的支持,也有不少編譯器已經(jīng)支持這個(gè)了,而且好像沒有太多的人用這個(gè)可變長(zhǎng)數(shù)組。
如果有過用其它語言編程的經(jīng)歷,那么想必會(huì)熟悉數(shù)組的概念。由于有了數(shù)組,可以用相同名字引用一系列變量,并用數(shù)字(索引)來識(shí)別它們。在許多場(chǎng)合,使用數(shù)組可以縮短和簡(jiǎn)化程序,因?yàn)榭梢岳盟饕翟O(shè)計(jì)一個(gè)循環(huán),高效處理多種情況。數(shù)組有上界和下界,數(shù)組的元素在上下界內(nèi)是連續(xù)的。因?yàn)?Visual Basic對(duì)每一個(gè)索引值都分配空間,所以不要不切實(shí)際聲明一個(gè)太大的數(shù)組。
此處數(shù)組是程序中聲明的變量數(shù)組。它們不同于控件數(shù)組,控件數(shù)組是在設(shè)計(jì)時(shí)通過設(shè)置控件的 Index 屬性規(guī)定的。變量數(shù)組總是連續(xù)的;與控件數(shù)組不同的是,不能從一個(gè)數(shù)組的中部加載或卸載數(shù)組元素。
一個(gè)數(shù)組中的所有元素具有相同的數(shù)據(jù)類型(在C、C++、Java、pascal中都這樣。但也并非所有涉及數(shù)組的地方都這樣,比如在Visual Foxpro中的數(shù)組就并沒這樣的要求)。當(dāng)然,當(dāng)數(shù)據(jù)類型為 Variant 時(shí),各個(gè)元素能夠包含不同種類的數(shù)據(jù)(對(duì)象、字符串、數(shù)值等等)。可以聲明任何基本數(shù)據(jù)類型的數(shù)組,包括用戶自定義類型和對(duì)象變量。
如果要用戶輸入的是一個(gè)數(shù)組,一般是用一個(gè)循環(huán),但是在輸入前也需要固定數(shù)組的大小。
compact跟變長(zhǎng)數(shù)組沒有太大的關(guān)系,也應(yīng)該用不到變長(zhǎng)數(shù)組。因?yàn)橐话愕膫鲾?shù)組到函數(shù)中就是傳數(shù)組的地址和元素的個(gè)數(shù)的,那只是一個(gè)提示,不是要求。
原型可以這樣寫(假設(shè)數(shù)組的元素是type):
int compact(type *Array,int Count)
數(shù)組類型說明 在C語言中使用數(shù)組必須先進(jìn)行類型說明。
數(shù)組說明的一般形式為:類型說明符 數(shù)組名 [常量表達(dá)式],……; 其中,類型說明符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。數(shù)組名是用戶定義的數(shù)組標(biāo)識(shí)符。方括號(hào)中的常量表達(dá)式表示數(shù)據(jù)元素的個(gè)數(shù),也稱為數(shù)組的長(zhǎng)度。