記錄

在計算機科學中 ， 記錄  也稱爲結構體  或複合資料  是基本的數據結構 ， 記錄是一些相關欄位的聚集 ， 它們可由不同的資料類型組成 ， 通常是固定的數量和序列 。 記錄中的每個欄位或稱爲元素 ， 但可能與集合的元素概念混淆不清 。 在物件導向編程中 ， 記錄的欄位也另外被稱爲成員 ； 依照慣例和具體的編程語言 ， 多元組有可能會被認爲是一個記錄 ， 反之亦然 。 譬如將日期儲存爲一個記錄 ， 則其中包含了數字的年份 ， 以字串表示的月份和數字的日期等欄位 。 而人事記錄可包含姓名 ， 薪水和職級等欄位 。 一個圓形的記錄可包含圓中心點和它的半徑 － 在這種情況下 ， 圓中心點本身可能表示爲x和y座標的點記錄 。 記錄與陣列的區別在於 ， 它們的欄位數通常是固定的 ， 每個欄位都有一個名稱 ， 而且每個欄位可能有不同的類型 。 一個記錄型別是描述其中欄位所具有值和變量的資料類型 。 大多數現代計算機語言允許開發人員自由定義新的記錄型別 。 記錄型別的定義將會指定每個欄位的資料類型和存取它的標識符 （ 名稱或標籤 ） 。 記錄可以存在於任何存儲介質中 ， 包括主記憶體和大容量存儲裝置 ， 如磁帶或硬盤 。 記錄是大多數資料結構的基本組成部分 ， 特別是鏈接的資料結構 。 許多計算機檔案是以邏輯記錄的陣列組成的 ， 通常被分組成更大的實體記錄或區塊以提高存取效率 。 函數或程序的參數通常當作是一個記錄變量其中的欄位 ； 而在呼叫該函數時 ， 傳遞給它的參數可被視爲將欄位的值指派給該記錄變量 。 此外 ， 通常用於實現程序調用的呼叫堆疊中 ， 每個登錄即是一條啓動記錄或呼叫框頁 ， 包含了程序參數和局部變量 ， 返回位址和其它內部欄位 。 物件導向語言中的物件本質上是一個記錄 ， 有如何處理該記錄的專用程序 ； 而物件型別是對記錄類型的詳細描述 。 實際上在大多數物件導向語言中 ， 記錄只是物件的特殊情況 ， 並且被稱爲普通舊資料結構 （ plain old data structures, PODS ） ， 與使用OO特徵的物件形成對比 。 計算機的記錄可類比爲數學的元組 。 相同地 ， 記錄型別可看作是兩個或多個數學集合的笛卡爾積 ， 或是以特定語言實作的抽象乘積型別 。 在許多計算機語言中 ， 都對結構有所定義 ： 結構體 ( C語言 ) 結構體 ( C++ ) 結構體 ( C# )