陣列的特性

2022-01-17 05:52:57 字數 631 閱讀 7032

固定儲存空間

在最初的設計層面上,陣列是依賴記憶體分配形成的,在使用陣列前必須先為它申請空間。這使得陣列這種資料結構具有了下面這樣的特性:

1、乙個陣列佔據的儲存空間大小固定,不能改變

2、所佔據的儲存空間是專用的,不能被其他資訊佔據

3、所佔據的儲存空間是連續性的,中間不能間隔其他的資訊

4、陣列中的各個元素可以用陣列名和下標直接訪問

優點這樣的資料結構肯定是很方便的,要讀要寫都很直接。

無論多長的數字,要訪問其中某乙個元素,只要知道它的下標,就能一步到位,直接訪問對應的樣式。

缺點:它的弊端也非常明顯:

1、太占地兒!

一開始就要把以後所有要用的儲存空間都申請下來,就算很長時間裡裝不滿,也不許存入其他資訊。空置的空間是很可惜的。

2、修改困難

理論上講,乙個陣列如果沒裝滿,那麼所有的空置位置都應該在尾部,而不是到處亂空。

這樣的話,如果給陣列中加入新元素,則只能加在尾部,如果要插入到中間位置,就要有一些元素被移動。

反過來,如果刪除掉乙個元素,也得把後面的再往前挪一位。

連續儲存惹的禍

所有這些限制,都是因為陣列是連續的一塊儲存空間,且各元素由下標標識引起的。如果不遵守這些限制,陣列相應的好處也就得不到了。

陣列特性之我見 陣列的鍊錶特性

定義乙個簡單的五維整型陣列 int ppppp 2 2 2 2 2 如右圖所示 我在此處形象的用帶有 位址 和 名字 兩個屬性的 坑 來表示變數,我說陣列就是乙個 大坑 這個 大坑 裡有層次的巢狀著一些 小坑 而這些 小坑 和 大坑 之間是像鍊錶一樣,一環套一環的 以上述5維陣列為例,從最小的 坑 ...

php 陣列 鍵值 特性

key 可以是 integer 或者 string。value 可以是任意型別。此外 key 會有如下的強制轉換 包含有合法整型值的字串會被轉換為整型。例如鍵名 8 實際會被儲存為 8。但是 08 則不會強制轉換,因為其不是乙個合法的十進位制數值。浮點數也會被轉換為整型,意味著其小數部分會被捨去。例...

GO語言 陣列特性

go語言 陣列特性 與其他語言不同,go語言陣列預設是按值傳遞,也就是說,陣列變數實際上儲存的是整個陣列而不像其他語言那樣儲存的是指向陣列開頭的指標。因此賦值的時候,如果需要避免額外的記憶體開銷 特別是陣列比較大的情況下 一定要使用取位址符去賦值,而不要直接的使用賦值符號賦值!test string...