複雜資料型別

2021-06-25 21:11:49 字數 1183 閱讀 3566

1、在c語言中,除了之前學到的基本資料型別(整型,浮點型,字元型)外,還有指標型別和構造型別(結構型,聯合型,列舉型)。

2、結構體型別,用於把不同型別的資料組合成乙個集合體,宣告格式:

struct  結構名;

例如:

#includestruct students;

void main()

結構體的特點是:①表示更豐富的複雜型別,是類的起源

②內部屬性定義的順序不影響使用,但影響記憶體分配

③關鍵認識點在於記憶體大小的對齊,如在上述例子中,sizeof(stu)=36,是因為在32位作業系統中按4個位元組對齊

3、共用體(聯合體),即用覆蓋技術,讓幾個不同型別的成員變數共享同一儲存區,定義聯合體的語法:

union   公用體名共用體變數名;

例子:

#includeunion score;

void main()

在上面例子中,point和level共享同一儲存區,所以sizeof(myscore)的值是資料型別中比較大的那個,這裡是int型的4個位元組。在給level賦值了之後,上面的point的值就不再是80,而是a的ascii碼值65。

公用體的特點:①同乙個記憶體區域可以存放不同資料型別(非常少見)

②內部屬性的定義不影響使用也不影響記憶體分配

③操作了乙個屬性,其他屬性也發生相應變化;因為它們在同一記憶體位址 

3、列舉型別,即把這種資料的型別可取的值一一枚舉出來,乙個列舉型的變數的取址僅限於列出值得範圍。宣告的語法:

enum  列舉名;

例子:

#includeenum season;

void main()

列舉型別的特點:①某些特定型別取值是固定的幾個值,所以需要列舉

②列舉定義時括號中的不是屬性,而是值的符號。

③改變值符號的順序,影響使用(值發生變化,除非用賦值符號寫死),不會改變記憶體分配。

只想的變數的型別名  *指標變數名;

例子:

#include void main()

指標型別的特點:①double不代表p的型別,p是指標型別大小固定;它代表的是指標p指向的記憶體區域是乙個double

②*是申明指標變數的標誌

③變數名p可以任意命名

複雜資料型別

1結構體 相當於是高階語言裡的類,但是他沒有方法,也就是行為,只有屬性,也就是成員,結構體相當於是自定義類 宣告struct students 當我們需要使用結要用結構體裡的類的屬性時,我們需要通過 運算子來進行呼叫,比如 students.age 2列舉它被用來存放固定的不可改變的型別,比如說,四...

複雜資料型別

1 定義形式 指向的內容的型別 指標名 2 存在空指標 3 指標變數存的是位址。提到指標便會有乙個指向關係。4 指標可以動態申請陣列new。使用後可以delete 5 陣列名是乙個常指標。它指向的位址不再改變。6 指標 指標有當前指向的位置,也就是指標存的位址,加乙個此指標所指向的內容的位元組數大小...

Oracle 複雜資料型別

1 記錄型別變數定義 set serveroutput on declare type stuinfo record is record 用 type定義與stuinfo表字段相匹配的變數型別 temp stuname stuinfo.stuname type,temp stuno stuinfo....