數(shù)組的概念和特點(diǎn) 數(shù)組是不是數(shù)據(jù)類型?如果是,是什么數(shù)據(jù)類型?
數(shù)組是不是數(shù)據(jù)類型?如果是,是什么數(shù)據(jù)類型?在C/C中,數(shù)組是一種內(nèi)置數(shù)據(jù)類型,但它不是一種基本數(shù)據(jù)類型,而是一種構(gòu)造數(shù)據(jù)類型。從語(yǔ)義上講,它是一組有序的相同數(shù)據(jù)元素,占據(jù)一個(gè)連續(xù)的物理空間。語(yǔ)言特性
數(shù)組是不是數(shù)據(jù)類型?如果是,是什么數(shù)據(jù)類型?
在C/C中,數(shù)組是一種內(nèi)置數(shù)據(jù)類型,但它不是一種基本數(shù)據(jù)類型,而是一種構(gòu)造數(shù)據(jù)類型。從語(yǔ)義上講,它是一組有序的相同數(shù)據(jù)元素,占據(jù)一個(gè)連續(xù)的物理空間。語(yǔ)言特性中對(duì)C/C數(shù)組的支持非常簡(jiǎn)單。相應(yīng)的定義形式是t[n]a={初始化列表}。實(shí)際任務(wù)是分配sizeof(T)*n字節(jié)的空間,然后使這些空間中的值等于初始化列表中的值。分配空間的恢復(fù)是隱式的(對(duì)于自動(dòng)變量,它在函數(shù)的末尾,對(duì)于靜態(tài)變量,它在過(guò)程的末尾),不需要語(yǔ)言用戶的干預(yù)。C/C語(yǔ)言特性不直接支持稱為動(dòng)態(tài)數(shù)組的動(dòng)態(tài)線性表或數(shù)據(jù)結(jié)構(gòu)。通常,手動(dòng)調(diào)用庫(kù)函數(shù)以按指針長(zhǎng)度分配/釋放空間,但其中的元素也可以由[]運(yùn)算符引用。對(duì)于[],如果不考慮過(guò)載,則a[x]相當(dāng)于*(a x),其中a是地址,x是整數(shù)偏移量,實(shí)際功(尋址)留給CPU??紤]到目標(biāo)代碼中的指令數(shù),此操作的時(shí)間復(fù)雜度為O(1)(恒定時(shí)間),它與a和X的值(所謂的“瞬間”)無(wú)關(guān)。作為程序員,不可能通過(guò)C/C語(yǔ)言本身來(lái)干擾這個(gè)過(guò)程。如果要實(shí)現(xiàn)類似的函數(shù),例如封裝數(shù)組類,C可以通過(guò)重載操作符[]并調(diào)用*,或[]作用于實(shí)現(xiàn)內(nèi)的指針來(lái)實(shí)現(xiàn)。一般來(lái)說(shuō),實(shí)現(xiàn)的復(fù)雜性是O(1)。===[原始響應(yīng)組]