*在C++中結構體和類有很多相似性,結構體是一種用關鍵字struct聲明的自定義數據類型。與類相似,也可以包含構造函數,常數,字段,方法,屬性,索引器,運算符和嵌套類型等,不過,結構是值類型。
結構體還是有很多的區別。
1.類成員默認訪問權限為私有(private),結構體成員默認訪問權限為公共(public);
2.從class繼承默認是private繼承,而從struct繼承默認是public繼承。
注意:C中的struct跟C++中struct可是不一樣的
*共用體 構造數據類型,也叫聯合體
用途:使幾個不同類型的變量共占一段內存(相互覆蓋)
結構體是一種構造數據類型
用途:把不同類型的數據組合成一個整體-------自定義數據類型
---------------------------------------------------------------
結構體變量所占內存長度是各成員占的內存長度的總和。
共同體變量所占內存長度是各最長的成員占的內存長度。
共同體每次只能存放哪個的一種!!
共同體變量中起作用的成員是尊后一次存放的成員,
在存入新的成員后原有的成員失去了作用!
---------------------------------------------------------------
struct 與 union主要有以下區別:
1. struct和union都是由多個不同的數據類型成員組成, 但在任何同一時刻, union中只存放了一個被選中的成員, 而struct的所有成員都存在。在struct中,各成員都占有自己的內存空間,它們是同時存在的。一個struct變量的總長度等于所有成員長度之和。在Union中,所有成員不能同時占用它的內存空間,它們不能同時存在。Union變量的長度等于最長的成員的長度。
2. 對于union的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對于struct的不同成員賦值是互不影響的。