C語言中結構體和陣列的區別


在 C 語言中,結構體和陣列都用作資料型別的容器,即在結構體和陣列中,我們都可以儲存資料,並且可以對它們執行不同的操作。

基於內部實現,以下是兩者之間的一些基本區別。

序號關鍵點結構體陣列
1定義結構體可以定義為一種用作容器的資料結構,它可以容納不同型別的變數。另一方面,陣列是一種用作容器的資料結構,它可以容納相同型別的變數,並且不支援多種資料型別的變數。
2記憶體分配結構體中輸入資料的記憶體分配不一定要在連續的記憶體位置。而在陣列的情況下,輸入資料儲存在連續的記憶體分配中,這意味著陣列將資料儲存在這樣的記憶體模型中,在該模型中,它分配連續的記憶體塊(即具有連續地址的記憶體塊)。
3可訪問性為了訪問結構體中的元素,我們需要知道該元素的名稱,即必須有元素名稱才能從結構體中檢索它。另一方面,在陣列的情況下,我們可以透過索引訪問元素。
4指標結構體內部沒有指標的概念。另一方面,在陣列的情況下,它在內部實現指標,該指標始終指向陣列的第一個元素。
5例項化結構體物件可以在程式稍後聲明後建立。另一方面,在陣列的情況下,我們不能在聲明後建立其物件。
6資料型別結構體支援多種資料型別的變數作為輸入。另一方面,在陣列的情況下,我們不能將不同的資料型別變數作為輸入,因為它只支援相同型別的資料變數。
7效能由於使用了使用者定義的資料型別,結構體的效能會變慢,因為與陣列相比,結構體中元素的訪問和搜尋速度較慢。另一方面,在陣列的情況下,元素的訪問和搜尋速度更快,因此效能更好。

更新於: 2020年2月25日

7K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告