重新學習C語言的第十二天

2021-10-08 03:00:11 字數 2413 閱讀 3007

①共用體

共用體:使幾個不同的變數共占同一段記憶體的結構稱為「共同體」型別的結構。

共同體和結構體的比較:

結構體變數所佔記憶體長度是各成員佔的記憶體長度之和。每個成員分別占有其自己的記憶體單元。

共同體變數所佔的記憶體長度等於最長的成員的長度。

共用體變數的引用方式:

只有先定義了共用體變數才能引用它,而且不能引用共用體變數,而只能引用共用體變數中的成員。

共用體型別資料的特點:

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 介面 無序的 不可重複 放入資料的順序和內部真實儲存的順序...