列表儲存記憶體的兩種形式

2022-02-22 01:07:39 字數 784 閱讀 3848

1.順序表結構

32位的作業系統每個儲存空間佔四個位元組。

然後列表中同型別的資料的元素的位址是相連的比如下圖

[200,390,78,1212]

假設第乙個元素的位址的0x27(x表示的是十六進製制),下乙個元素的位址就是0x27+*4bytes=0x31  (每個元素會占用4個位置)

當把li這個列表賦值給乙個元素的時候 實際上是這個變數,指向首個元素的位址。

li=[200,390,78,1212]

,當引用下標取元素的時候,表示的是乙個推移量,比如取li[2],首先第一步獲取li的記憶體位址0x27然後往後推移二個得到0x27+2x4bytes=0x35,也就是對應下圖的第三個元素。

也就是說下標實際上是乙個推移量的表示。

2.元素外接(索引取得是位址的位址)

如下列表[1,"ok",1.111,2333]]

當列表裡的元素不是同等型別的時候,此時的記憶體位址也是不連續的,此時的位址儲存情況和上述的有所不同,首先對每個元素分配好空,但是並不連續,然後再把記憶體位址作為資料

存到另外的空間的,乙個記憶體位址占用四個位元組,這時候記憶體位址的資料占用的四個空間的位址是連續的。然後

此時的取值順序就是成了,首先獲取記憶體位址資料所在的空間的記憶體位址,然後找到相應的記憶體位址對應的元素。

C C 的兩種多型形式

1 2 test.cpp4 5 created by mac on 15 8 11.6 7 8 include9 include10 using namespace std 11class person 基類person12 25person person 26 person person stri...

include的兩種指令形式

在程式設計過程中不在意的細節 搬運於c程式設計 include include stdio.h include使用尖括號的形式時,編譯系統從存放c編譯系統的子目錄中去找所要包含的檔案如 stdio.h 這稱為 標準方式 若使用 include指令是為了使用系統庫函式,因而要包含系統提供的相應標頭檔案...

寫出Singleton的兩種形式

public class test01singleton 餓漢式 class singleton1 private static singleton1 instance1 newsingleton1 加靜態是因為要被靜態呼叫 public static singleton1 getinstance ...