當前位置:首頁 » 服務存儲 » 數組13所佔的存儲空間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數組13所佔的存儲空間

發布時間: 2023-01-18 19:58:09

1. 數據結構、數組存儲的地址怎麼計算

數組存儲地址的計算:

以二維數組為例,其他的依次類推

假設起始下標從0開始,按行存儲(總共有M行,N列):

A[i][j]=A[0][0]+(i*N+j)*L

這地方的L是數組中的一個元素所佔的存儲空間。

或:

即使A[8][5]前面有多少個元素,

行下標i從1到8,列下標j從1到10,所有A[8][5]之前共有n7*10+4(74)個元素,

每個元素的長度為3個位元組,故共有3*74=222個位元組

首地址是SA,則A[8][5]地址是SA+222

(1)數組13所佔的存儲空間擴展閱讀:

在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。

2. 數據結構 數組存儲地址的計算

數組存儲地址的計算:以二維數組為例,其他的依次類推:

假設起始下標從0開始,按行存儲(總共有M行,N列):

A[i][j]=A[0][0]+(i*N+j)*L

這地方的L是數組中的一個元素所佔的存儲空間

例如:

第一個元素的地址「值」就是數組的地址「值」,只不過類型不一樣,強轉一下就可以了。

int ary[5];

int* pInt = &ary[0];

int (*pAry)[5] = &ary;

printf("First: %p ", pInt);

printf("Array: %p ", pAry);

(2)數組13所佔的存儲空間擴展閱讀:

一個數組中的所有元素具有相同的數據類型(在C、C++、Java、pascal中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。當然,當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、字元串、數值等等)。可以聲明任何基本數據類型的數組,包括用戶自定義類型和對象變數。

3. C語言中如何計算一個數組占內存多少空間

如果一個數組的長度是n(即有n個元素),元素的類型是XXX,則n*sizeof(XXX)就是這個數組所佔內存空間的位元組數。

4. 數組在內存中佔多大空間

在定義字元數組用字元串常量進行初始化時,系統會自動在結尾加''做結束標志,所以數組array所佔的空間為6個位元組。

5. C語言中如何計算一個數組占內存多少空間

首地址由數組名表示,也是0元素的地址。
若有: int a[10];
則:a與&a[0]都表示a數組所佔存儲空間的起始地址