c++中有以下幾種自定義資料型別方式:typedef、union、enum
typedef只是用於重新命名一種已有的資料型別。
typedef char c; //注意第二種用法,陣列的維數[50]是寫在最後的。c c即char c
typedef char field [50]; //
field s即char[50]
union中的每個成員共享同一段記憶體(每個成員的起始記憶體位置都是一樣的),整個union的大小取決於最長的成員的大小。
union mix_t這個union的記憶體示意圖如圖下所示(注意32位機器上,char為1byte,short為2bytes,long為4bytes)s;
char c[4
];}mix;
非匿名union(union的名字為price)
struct匿名union(union沒有名字)price;
} book;
struct那麼這兩種結構的不同就是元素的訪問方式不同,假如我們要訪問dollars這個元素,第一種是book.price.dollars,第二種是book.dollars。;} book;
列舉型別,其中列舉值是常量,而不是變數。
enum其中mon其實是0,tue是1,以此類推。days;
days today = mon;
當然mon不一定要從0開始,所以可以這樣寫……
enum days;其中mon是1,tue是2,以此類推。
之前一直犯乙個錯誤,直到今天(2023年4月11日)看objc的時候才發現,
enum days; //0 2 3cout
<< mon << endl; //輸出0而不是1
C 自定義資料型別
c 除了提供多種基本的資料型別 如 int float double char等 供使用者使用外,還允許使用者根據需要自己宣告一些型別,例如陣列 結構體 structure 型別 共用體 union 型別 列舉 enumeration 型別 類 class 型別等,這些統稱為 使用者自定義型別 us...
自定義資料型別
include include using namespace std typedef double weight,tall struct student int main cout for int i 0 i 4 i return 0 貼上正確的輸出 這裡tall和weight都是自己可以輸入的 ...
C 高階資料型別(六) 自定義資料型別
前面我們已經看到過一種使用者 程式設計師 定義的資料型別 結構。除此之外,還有一些其它型別的使用者自定義資料型別 c 允許我們在現有資料型別的基礎上定義我們自己的資料型別。我們將用關鍵字typedef來實現這種定義,它的形式是 typedef existing type new type name ...