C語言小結之結構型別

2022-07-20 15:54:14 字數 1797 閱讀 2551

c語言小結之結構型別

@刁鑽的遊戲

(1)列舉型型別

enum color ;

//宣告一種新的資料型別,其值分別為0,1,2但是用black/red/blue代表

也可以這莫做

enum color ;//則值為1,2,3

enum的本質還是int型

應用:可以表示一列const int,用它來做符號量。

(2)結構型別

結構體型別就是乙個復合資料型別,就是乙個變數,下面包含著一些資料。

1>結構體宣告

方式一:宣告結構體

struct point

struct point p1;//宣告point型別變數 p1

方式二:單純想要兩個變數,而不想宣告這種結構型別

structp1,p2;

方式三:同時做兩件事,一則建立結構體變臉型別,二則宣告兩個結構體變數

struct pointp1,p2;

2>結構體變數賦值

struct point p1 = ;

struct point p2 = ;//為賦值的預設為0

注意:前面要跟上struct

3>結構成員的訪問和使用

使用.域操作符

p1.x = 2;

z = p1.y;

可以對整體賦值,譬如:p1 = (struct point);

4>函式中傳遞的是值不是位址,如果我們想改變本身變數,應該傳入位址

&p1

p1->x表示p1中的成員變數x

思想:函式中,傳入乙個結構體,不如只穿結構體的指標,然後在函式體裡面進行使用

5>結構陣列

point p1[2] = ,};//兩個座標p1[0] = p2[1]=

print(point *p1)

(3)自定義資料型別

struct建立的自定義資料型別,在宣告變數時都要跟上struct

typedef提供了資料型別別名

例如typedef int length//表示為int起了個別名叫做length

則以後可以這樣使用

lengh l1,l2;

所以我們可以用它來這樣做

typedef struct apoint point;

他就等效為如下圖所示

typedef <---> point//表示為struct 結構體型別創造了point變數型別

以後就可以這樣

point p1 =;

(4)聯合體資料型別

表示形式:union

舉例:union point

共用體宣告後,實質這塊記憶體的大小是其中包含變數最大的大小,在上述程式中應該是int大小最大,那麼他是四個位元組大小

記憶體中排列是這樣的

i 【 】 ---- ---- ----

y 【 】【 】【 】【 】

//【】代表記憶體占有 ---- 記憶體不占有

他們共用一塊記憶體。

應用:可以利用共用體對長變數進行拆分,拆分成四個char或者二進位制進行觀察。

C語言小結之結構體

一 什麼是結構體?結構體也叫結構,是由一系列具有相同型別或不同型別的資料構成的資料集合。二 結構體的宣告 struct tag variable list 比如描述乙個學生 struct stu 分號不可以丟掉,切記 特殊的宣告 結構體在宣告的時候可以不完全宣告,比如 struct x struct...

C語言筆記之結構型別

列舉 列舉是一種使用者定義的資料型別,他用關鍵字enum以如下語法來宣告 enum 列舉資料型別 名字0,名字n 列舉型別名字通常並不真的使用,要用的是在大括號裡的名字因為它們就是常量符號,它們的型別是int,值則依次從0到n。宣告結構的形式 struct point struct point p1...

C語言 C 結構體疑問小結

1.關於結構體 情況一 最簡單的結構體定義struct stu 關鍵字 struct 表明這是在定義乙個結構體,stu是這種資料格式的名稱,因此我們可以像使用char int等建立變數一樣使用stu建立stu型別的變數了。情況二 附加 結構體變數 的初始化的結構體定義 struct stushenq...