一、數(shù)據(jù)結(jié)構(gòu)構(gòu)造
1、數(shù)組類型
數(shù)組是有一定順序關(guān)系的若干變量的一個集合,其中每一個變量我們稱為數(shù)組的元素,分為一維數(shù)組、多維數(shù)組。一維數(shù)組有一個下標(biāo)就能確定位置。多維數(shù)組元素有多個下標(biāo),以標(biāo)識它在數(shù)組中的位置。
一維數(shù)組
定義:<數(shù)據(jù)類型> <數(shù)組名> < [ ] >? 例:int? i [10]。初始化方法:
普通局部數(shù)組沒有初始化,則數(shù)組中元素的值,是不確定的。全局?jǐn)?shù)組沒有初始化默認(rèn)為0。
全部初始化,給每一位元素寫值,例:int? i [5]={1,2,3,4,5};還可以寫成 int? i []={1,2,3,4,5};兩種寫法都是5個元素。
局部初始化,只給數(shù)組里前幾位初始化,不完全初始化,余下的就會默認(rèn)為0。例:int? i [5]={0};剩下的4位默認(rèn)為0。int? i [5]={1,2}; 剩下的3位都為0。
二維數(shù)組
多維數(shù)組要多個下標(biāo),二維數(shù)組有兩個下標(biāo),才能確定位置。定義: <數(shù)據(jù)類型> <數(shù)組名> < [ ] >< [ ] >? 例:int? i [5][10]; 可以看成是5個一維數(shù)組,每個一維數(shù)組10個元素。初始化方式:
全部初始化,例:int? i [2][3]={ {1,2,3},{1,2,3} };{}里有兩個一維數(shù)組。給每個元素賦值。還可以寫成 int? i [][3]={ {1,2,3},{1,2,3} };
部分初始化:int? i [2][3]={ {1},{1} };給個每個給前面1個(或多個)元素賦值,名列前茅個一維剩下的3個元素默認(rèn)為0,第二個也是。
線性賦值,例:int? i [2][3]={1,2,3,1,2,3}; 這里數(shù)組共有6個元素,里面不用{}分開,直接給每位元素賦值。
線性部分初始化,例:int? i [2][3]={1,2} ; 剩下的4位元素都默認(rèn)為0。
2、結(jié)構(gòu)體類型
結(jié)構(gòu)體是C語言中一種重要的數(shù)據(jù)類型,該數(shù)據(jù)類型由一組稱為成員(或稱為域,或稱為元素)的不同數(shù)據(jù)組成,其中每個成員可以具有不同的類型。結(jié)構(gòu)體通常用來表示類型不同但是又相關(guān)的若干數(shù)據(jù)。結(jié)構(gòu)體類型不是由系統(tǒng)定義好的,而是需要程序設(shè)計者自己定義的。C語言提供了關(guān)鍵字struct來標(biāo)識所定義的結(jié)構(gòu)體類型。
關(guān)鍵字struct和結(jié)構(gòu)體名組合成一種類型標(biāo)識符,其地位如同通常的int、char等類型標(biāo)識符,其用途就像 int 類型標(biāo)識符標(biāo)識整型變量一樣可以用來定義結(jié)構(gòu)體變量。定義變量以后,該變量就可以像定義的其他變量一樣使用了;成員又稱為成員變量,它是結(jié)構(gòu)體所包含的若干個基本的結(jié)構(gòu)類型,必須用“{}”括起來,并且要以分號結(jié)束,每個成員應(yīng)表明具體的數(shù)據(jù)類型。
3、共用體類型
不同數(shù)據(jù)類型的數(shù)據(jù)可以使用共同的存儲區(qū)域,這種數(shù)據(jù)構(gòu)造類型稱為共用體,簡稱共用,又稱聯(lián)合體。共用體在定義、說明和使用形式上與結(jié)構(gòu)體相似。兩者本質(zhì)上的不同僅在于使用內(nèi)存的方式上。
延伸閱讀:
二、數(shù)據(jù)結(jié)構(gòu)是什么
數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運行或者存儲效率。 數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。