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...