①共用體
共用體:使幾個不同的變數共占同一段記憶體的結構稱為「共同體」型別的結構。共同體和結構體的比較:
結構體變數所佔記憶體長度是各成員佔的記憶體長度之和。每個成員分別占有其自己的記憶體單元。共用體變數的引用方式:共同體變數所佔的記憶體長度等於最長的成員的長度。
只有先定義了共用體變數才能引用它,而且不能引用共用體變數,而只能引用共用體變數中的成員。共用體型別資料的特點:
a、 同乙個記憶體段可以用來存放幾種不同型別的成員,但在每一瞬時只能存放其中一種,而不是同時存放幾種。以上純屬閒聊!b、 共用體變數中起作用的成員是最後一次存放的成員,在存入乙個新的成員後原有的成員就是去作用。
c、共用體變數的位址和它的各成員的位址都是同一位址。
d、不能對共共用體變數名賦值,也不能企圖引用變數名來得到乙個值,又不能在定義共用體變數時對它初始化。
e、不能把共用體變數作為函式引數,也不能使函式帶回共用體變數,但可以使用指向共用體變數的指標。
f、共用體型別可以出現在結構體型別定義中,也可以定義共用體陣列。反之,結構體也可以出現在共用體型別定義中,陣列也可以作為共用體成員。
#include
struct
category;
}person[2]
;//為了方便先假設乙個學生乙個老師。
intmain()
else
if(person[i]
.job ==
't')
else
printf
("\n");
}// 以下是列印資料……
printf
("no. name *** job class/position\n");
for(i =
0; i <
2; i++
)else
}}
②列舉型別
在實際問題中,有些變數的取值被限定在乙個有限範圍,比如一周只有星期一二三四五六七,沒有星期八,星期八就是錯誤的,不被允許的!列舉型別時一種基本資料型別,而不是一種構造型別,因為它不能再分解為任何基本型別。
③用typedef定義型別
用typedef宣告新的型別名來代替已有的型別名#include
typedef
int integer;
intmain()
#include
typedef
struct
date;
intmain()
#include
typedef
int num[
100]
;int
main()
;printf
("%d\n\n"
,sizeof
(a))
;}
#include
typedef
char
* p;
intmain()
#include
typedef
int(
*point)()
;int
fun();
intmain()
intfun()
使用typedef有利於程式的通用與移植。typedef與#define有相似之處,例如typedef int count;#define count int 的作用都是用count 代替int,但是兩者確實不同。
#define是在預編譯時處理的,它只能作簡單的字串替換,而typedef是在編譯時處理的。實際上它並不是作簡單的字串替換,而是採用如同定義變數的方法那樣來宣告乙個型別。
rhce學習第十二天
selinux 基於 samba 需要修改的內容 root server1 pub mkdir ccc root server1 pub chmod 777 ccc root server1 pub ls z etc samba rw r r root root system u object r ...
學習Python 第十二天
列表 鍊錶 1 棧 filo 先進後出 2 佇列 fifo 先進先出 普通佇列 class myquene object def init self,list self.list list def size self return len self.list def delete self if s...
Java學習第十二天
2019 05 09 晴一 容器 可變長的,任意資料型別的資料的集合 二 集合 collection 五 vector 向量 底層 雙向鍊錶實現 優點 做增刪效率高 缺點 查詢和遍歷效率低 新增功能 新增了一些操作與頭部和尾部的方法 set 介面 無序的 不可重複 放入資料的順序和內部真實儲存的順序...