回覆列表
-
1 # 牆外585
-
2 # ffhh1998
結構體是一種值類型,而類是引用類型。值類型用於存儲數據的值,引用類型用於存儲對實際數據的引用。
那麼結構體就是當成值來使用的,類則通過引用來對實際數據操作。
2.結構使用棧存儲(Stack Allocation),而類使用堆存儲(Heap Allocation)
棧的空間相對較小.但是存儲在棧中的數據訪問效率相對較高.
堆的空間相對較大.但是存儲在堆中的數據的訪問效率相對較低.
3.類是反映現實事物的一種抽象,而結構體的作用只是一種包含了具體不同類別數據的一種包裝,結構體不具備類的繼承多態特性
4.結構體賦值是 直接賦值的值. 而對象的指針 賦值的是對象的地址
,結構體優點如下,
(1)可以包含不同數據類型的一個結構體
(2)相同的結構體變量是可以相互賦值的
(3)節省內存空間
注意:結構體聲明的時候本身不佔用任何內存空間,只有當你用你定義的結構體類型定義結構體變量的時候計算機才會分配內存。
直接內存操作避免了棧空間開闢結構變量空間的需求,節省內存。
(4)效率高
根據反匯編的思想,結構體在棧中是離散的,而數組在棧中是連續的,而訪問起來結構體相對快一些,也在一些教材上看到過,說結構體的效率高是拿空間換取時間的,我個人認為,應該是存儲和訪問方式的不同而使其效率較高