.自定義型別部分知識。
知識點:
結構體型別建立1.結構體型別建立結構體初始化
結構體內存對齊
位段,位段計算機大小。
列舉+聯合。
struct stu ;
2.結構體初始化
struct student s;
struct student s=;
3.結構體內存對齊
對齊規則:
(3):結構體總大小為最大對齊數的整數倍;
(4):如果巢狀了結構體的情況,巢狀的結構體對齊到自己的最大對齊數的整數倍處,
結構體的整體大小就是所有最大對齊數的整數倍。
4.位段
(1)位段的宣告:
1.1位段的成員必須是 int、unsigned int 或signed int 。
1.2.位段的成員名後邊有乙個冒號和乙個數字。
(2)位段的記憶體分配:
2.1 位段的成員可以是 int unsigned int signed int 或者是 char (屬於整型家族)型別 。
2.2.位段的空間上是按照需要以4個位元組( int )或者1個位元組( char )的方式來開闢的。
2.3 位段涉及很多不確定因素,位段是不跨平台的,注重可移植的程式應該避免使用位段。
5.列舉+聯合
(1)列舉:
enum day ;
enum sem ;
列舉的優點:
1.1 增加**的可讀性和可維護性。
1.2和#define定義的識別符號比較列舉有型別檢查,更加嚴謹。
1.3 防止了命名汙染(封裝)。
1.4 便於除錯 。
1.5 使用方便,一次可以定義多個常量。
(2)聯合:聯合也是一種特殊的自定義型別 這種型別定義的變數也包含一系列的成員,特徵是這些成員公用同一塊空間(所以 聯合也叫共用體)。
union un ; union un un;
2.1特點:聯合的成員是共用同一塊記憶體空間的,這樣乙個聯合變數的大小,至少是最大成員的大小(因為聯合至少得 有能力儲存最大的那個成員)
2.2大小計算:聯合的大小至少是最大成員的大小。 當最大成員大小不是最大對齊數的整數倍的時候,就要對齊到最大對齊數的整數倍。
自定義型別知識點
1 結構體的宣告 在宣告結構體的,必須列出它包含是所有成員。這個列表包括每個成員的型別和名字。struct tag 結構體標籤 variable list 變數列表結構體標籤 允許為成員列表提供乙個名字,可以在後續的宣告中使用。標籤允許多個宣告使用同乙個成員列表,並且建立同一種型別的結構。這個宣告把...
自定義型別知識點小結
一.結構體 1.結構是一些值的集合,這些值稱為成員變數。結構的每個成員可以是不同型別的變數。2.結構的宣告 這裡的tag指的是結構體的名稱,原則上可以省略,但一般不建議省略。舉個例子,這裡我們定義乙個關於學生基本資訊的結構體 3.結構體成員 結構體的成員可以是標量,陣列,指標,甚至是其他結構體。這裡...
自定義型別 聯合體知識點總結
聯合體 和結構體形式差不多,都是包含一系列的成員。但是聯合體相較結構體來說有一點特殊就是 聯合體的所有成員共用一快記憶體空間。聯合體的宣告 union un union un un 定義乙個聯合體變數 第乙個成員變數的位址跟聯合體的位址一樣,這點跟結構體類似。聯合體的特點 成員共用乙個記憶體空間,這...