union和enum使用
一、聯合(union)
1.定義
聯合與結構相似,也可以容納不同型別的值,但每次只能存一個值,若在容納另一個值將會把前面的值覆蓋調(即:多個變數使用同一個記憶體空間,但記憶體空間只有1個,所以要這些變數在不同時間用才行)
2.結構
union mima//這裡和結構體類似,就是吧struct改為union
{
unsigned long birthday;
unsigned short ssn;
char *pet;
};
mima mima_1;//建立該聯合型別的變數
//對結構成員進行賦值
mima_1.birthday=19980105;
//然後再執行下面語句(這裡是驗證聯合型別只能存一個值,否則會被覆蓋)
mima_1.pet=”xxx”//執行這個語句時會把birthday成員的值丟棄
3.舉例
#include <iostream>
using namespace std;
union mima
{
unsigned long birthday;
unsigned short ssn;
char *pet;
};
int main()
{
mima mima_1;
mima_1.birthday=19980105;
cout<<mima_1.birthday<<"\n";
mima_1.pet="xxx";
cout<<mima_1.pet<<"\n";
cout<<mima_1.birthday<<"\n";//這個的值已經被覆蓋,輸出的是它在記憶體中的地址
return 0;
}
//19980105
//xxx
//4751362
- 1
4.總結
1.為了節省空間時使用聯合型別(只提供一個記憶體)
2.使用不同方式解釋資料時不用強制轉換時也可以用聯合型別
二、列舉(enum)
1.定義
列舉(enum)型別用來建立一個可取值的列表
2.用法(結構)
enum weekdays{Monday,Tuesday,Wednesday,Thursday,Friday};
//下面建立該型別的變數
weekdays today;
//下面方式對它賦值
today Thursday;//注意Monday,Tuesday…這些並不是字串,而是從0開始的值,變數的賦值只能出現在上面五個元素中
3.舉例
#include <iostream>
using namespace std;
int main()
{
enum weekdays{Monday,Tuesday,Wednesday,Thursday,Friday};//這些值不是字串,預設Monday為0,Tuesday為1......
weekdays today;
today=Monday;
cout<<today<<"\n";
today=Tuesday;
cout<<today<<"\n";
return 0;
}
//結果是0,1
- 1
- 若將Monday賦值為1
#include <iostream>
using namespace std;
int main()
{
enum weekdays{Monday=1,Tuesday,Wednesday,Thursday,Friday};
weekdays today;
today=Monday;
cout<<today<<"\n";
today=Tuesday;
cout<<today<<"\n";
return 0;
}
//結果是1,2
- 1
4.總結
1.它可以對變數的可取值加以限制(比如本來列舉定義為Monday,若後面寫成Monday1,是不實現的)
2.它可以用作switch條件語句的case標號(因為字串不能作為case的標號用)(小技巧)
相關文章
- union 和union all 使用區別
- union all和union的區別
- union和union all 關鍵字
- sql中union和union all的用法SQL
- sql中UNION和UNION ALL的區別SQL
- 在 Python 中使用 enumPython
- `FULL JOIN` 和 `UNION ALL`
- MySQL中union和order by同時使用的實現方法MySql
- 如何使用enum資料型別?資料型別
- msyql jion 和 union 的區別
- Struct 和 Union有下列區別Struct
- SQLite語句(三):JOIN和UNIONSQLite
- MySQL學習(五) UNION與UNION ALLMySql
- enum用法
- Python Enum 使用的幾點注意事項Python
- union用法
- union注入
- 【C/C++】C和C++11之enum列舉的使用細節C++
- C語言中關鍵字typedef、enum的使用C語言
- 使用列舉ENUM替換Switch或If-Else
- C語言:一個例子理解 union 和 structC語言Struct
- 銀彈谷V平臺VSQL使用distinct與union all使用SQL
- oracle知識整理(1) union和union all的區別,left join和right join的區別(各種join的區別)Oracle
- Java列舉型別enum的詳解及使用Java型別
- 從資料庫到前端,使用 enum 代替 constant number資料庫前端
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer
- Oracle的集合操作(union、union all、intersect、minus集合函式)Oracle函式
- Java 列舉(enum)Java
- TypeScript 列舉enumTypeScript
- union 聯合體
- union存取低高位
- 在非 laravel 專案中使用 laravel 的特性 10: EnumLaravel
- hyperf 使用模型寫 union 子查詢並做分頁模型
- ch11_enum_and_annotation
- 【python】Enum 列舉類Python
- ENUM列舉型別型別
- Swift -- enum 繼承 protocolSwift繼承Protocol
- 走進 JDK 之 EnumJDK