1. 程式人生 > >結構體和聯合體

結構體和聯合體

原來 作用 變量 結構體 spa str 空間 union 它的

定義:

結構體是將不同的數據類型組成一個新的數據類型(自定義數據類型)

聯合是幾個不同的數據類型共用同一個內存段(相互覆蓋)

所占內存大小:

結構體變量所占內存長度是各成員占的內存長度的總和。

共同體所占內存大小主要看變量中起作用的成員是最後一次存放的成員,在存入新的成員後原有的成員失去了作用!

Struct與Union主要有以下區別:

1. struct和union都是由多個不同的數據類型成員組成, 但在任何同一時刻, union中只存放了一個被選中的成員, 而struct的所有成員都存在。在struct中,各成員都占有自己的內存空間,它們是同時存在的。一個struct變量的總長度等於所有成員長度之和。在Union中,所有成員不能同時占用它的內存空間,它們不能同時存在。Union變量的長度等於最長的成員的長度。

2. 對於union的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對於struct的不同成員賦值是互不影響的。

共用體

構造數據類型,也叫聯合體

用途:使幾個不同類型的變量共占一段內存(相互覆蓋)

結構體和聯合體