數據類型:
- 已學--整數、實數、字符、字符串、數組、指針、結構
- 待學--向量(vector)類型:優于數組
- 非主流的類型--聯合(union)、枚舉(enum)
一、聯合
- 聯合類似于結構,可以容納多種不同類型的值。
- 區別:聯合每次只能存儲這些值中的某一個。
- 例如:我們要定義一個變量來存放某種密碼,我們可以選擇是你女朋友的生日、身份證最后4位數字或者你養的寵物的名字等等。使用聯合類型是一個不錯的選擇。
1.聯合的基本語法格式
union mima //使用union關鍵字 {unsigned long birthday;//使用生日作為密碼 unsigned short ssn;// 使用身份證后四位作為密碼 char *pet;//使用寵物名字作為密碼 }; //一定要加分號;
2.創建union類型的變量?
mima pwd; //創建一個mima聯合類型的變量pwd
3.對成員進行賦值
//對成員進行賦值pwd.birthday=200000616;//將 200000616 存入 聯合的birthday成員里 pwd.ssn=0226;//將 0226 存入 聯合的ssn成員里 , 并丟棄(覆蓋) birthday成員里的值 pwd.pet="Lili";//將 Lili 存入 聯合的pet成員里 ,并丟棄(覆蓋) ssn成員里的值
#include <iostream>int main()
{union mima //使用union關鍵字 {unsigned long birthday;//使用生日作為密碼 unsigned short ssn;// 使用身份證后四位作為密碼 char *pet;//使用寵物名字作為密碼 }; //一定要加分號; mima pwd; //創建一個mima聯合類型的變量pwd //對成員進行賦值pwd.birthday=200000616;//將 200000616 存入 聯合的birthday成員里 std::cout<<pwd.birthday<<"\n"; //200000616pwd.pet="xaoibai";//將 0226 存入 聯合的ssn成員里 , 并丟棄(覆蓋) birthday成員里的值 std::cout<<pwd.pet<<"\n"; //xaoibaistd::cout<<pwd.birthday<<"\n"; //4710402:xaoibai這個字符串的第一個元素的地址 (字符串的首地址) return 0;}
二、枚舉
1.枚舉類型的基本語法格式
//定義枚舉類型
enum weekdays{ Monday, Tuesday,Wednesday, Thursday, Friday};//注意:這里不需要使用引號,因為枚舉值不是字符串
2.創建枚舉enum類型的變量
//創建枚舉類型weekdays的變量 weekdays today;
3.對成員進行賦值
//對枚舉類型的變量today賦值 today=Monday; //值只能w為定義好的枚舉類型std::cout<<today<<"\n"; //0 編輯器會按照各個枚舉值在定義時出現的先后順序把他們與0~n-1的整數關聯起來(n是枚舉值的總總個數)today=Tuesday;std::cout<<today<<"\n"; //1
4.使用枚舉類型的連個好處:?
- 它們對變量的可取值加以限制
- 它們可以用作switch條件的case標號。(因為字符串是不能作為標號用的)
#include<iostream>int main()
{//定義枚舉類型 enum weekdays{ Monday, Tuesday,Wednesday, Thursday, Friday};//注意:這里不需要使用引號,因為枚舉值不是字符串 //創建枚舉類型weekdays的變量 weekdays today;//對枚舉類型的變量today賦值 today=Monday; //值只能w為定義好的枚舉類型
// std::cout<<today<<"\n"; //0 編輯器會按照各個枚舉值在定義時出現的先后順序把他們與0~n-1的整數關聯起來(n是枚舉值的總總個數)today=Tuesday;
// std::cout<<today<<"\n"; //1switch(today){case Tuesday:std::cout<<"今天不是星期一";} }
三、類型別名
- Typedef 保留字,使用它可以為一個類型定義創建一個別名。
- 例如,我們不喜歡使用 int* 來創建指針,可以像下邊這樣定義一個類型別名:
typedef int* intPointer;
????????????????????????????????????????(這樣,intPointer 就等于 int*)
在此之后,我們就可以像下面這樣來定義整型指針了:
intPointer myPointer;
未完待續。。。?