C 自定義資料型別

2022-04-07 07:59:59 字數 1109 閱讀 1450

c++中有以下幾種自定義資料型別方式:typedef、union、enum

typedef只是用於重新命名一種已有的資料型別。

typedef char c;                //

c c即char c

typedef char field [50]; //

field s即char[50]

注意第二種用法,陣列的維數[50]是寫在最後的。

union中的每個成員共享同一段記憶體(每個成員的起始記憶體位置都是一樣的),整個union的大小取決於最長的成員的大小。

union mix_t

s;

char c[4

];}mix;

這個union的記憶體示意圖如圖下所示(注意32位機器上,char為1byte,short為2bytes,long為4bytes)

非匿名union(union的名字為price)

struct

price;

} book;

匿名union(union沒有名字)

struct

;} book;

那麼這兩種結構的不同就是元素的訪問方式不同,假如我們要訪問dollars這個元素,第一種是book.price.dollars,第二種是book.dollars。

列舉型別,其中列舉值是常量,而不是變數。

enum

days;

days today = mon;

其中mon其實是0,tue是1,以此類推。

當然mon不一定要從0開始,所以可以這樣寫……

enum days;
其中mon是1,tue是2,以此類推。

之前一直犯乙個錯誤,直到今天(2023年4月11日)看objc的時候才發現,

enum days;  //0 2 3

cout

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