1. 程式人生 > >C++列舉、結構、共用體

C++列舉、結構、共用體

一、列舉

  • enum typename {識別符號[=整型常數],...};
  • 作用:自定義值域;增加程式碼可讀性
  • 從語法角度看,列舉元素是命名常量,列舉元素沒有賦初值的話實際值為0,1...沒有指定值的列舉元素,其值為前一元素加 1
  • 從應用角度看,可以將列舉元素看作字面常量,如3.14是double型別的字面常量
  • 列舉型別的值可以直接賦值給整型變數(自動型別轉換)
  • 整型數值不能直接賦值給列舉型別變數,但可以強制型別轉換
  • 列舉變數不能自增
  • 不能通過cin和cout直接輸入輸出列舉元素值,只能通過判斷處理,一般用switch語句

二、結構

  • struct typename{定義成員變數的列表};
  • 用成員運算子.訪問成員變數:結構變數.成員名
  • 結構變數不能作為整體進行I/O、算數和比較操作,但可以作為整體進行同型別的賦值操作
  • 結構變數可以作為函式引數(值形參or引用形參)和返回值
  • 層次結構:結構巢狀結構
  • 與類的區別:struct訪問控制方式預設public,class訪問控制方式預設private
  • 如果結構體的全部資料成員都是公共成員,沒有使用者定義的建構函式,沒有基類和虛擬函式,可以用初始化列表進行初始化

三、共用體

  • 儲存多種不同型別的變數,但每個例項只能是一種變數
  • 聯合體記憶體空間由佔用記憶體空間最大的變數以及記憶體對齊決定