sizeof關鍵字獲取陣列容量

2021-10-24 04:43:32 字數 834 閱讀 1081

假設有如下定義的一維陣列:

intarray[8];

那麼,這個 array 陣列佔據多少個位元組容量?我們可以思考如下:

(1) array 陣列有8個元素;

(2) 陣列每個元素是int型別,由於int型別佔據4個位元組;所以,array陣列就占用8 * 4 = 32個位元組的空間。

程式測試例子如下:

程式執行結果如下:

可以看到,通過sizeof(array)獲取array陣列的容量,就是獲取陣列所佔據的記憶體位元組數。

那麼,我們可以通過sizeof關鍵字獲取陣列所佔據的記憶體位元組數,如果知道陣列元素的型別,就可以知道陣列的長度。計算過程如下:

(1) sizeof(陣列元素型別); 獲取陣列中乙個元素所佔據的位元組數;假設為x;

(2) sizeof(陣列); 獲取陣列佔據的位元組數;假設為y;

那麼,陣列的長度就是陣列中元素的個數,假設為 num,就有 num = y/x;程式測試**如下:

程式執行結果如下:

可以看到,計算出了num變數就是array陣列的長度。就是所含元素的個數。

簡記關鍵字sizeof

sizeof 是計算分配記憶體的大小,是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子。但是最好不要把sizeof當成函式,也不要看作一元操作符,把他當成乙個特殊的編譯預處理。sizeof typename sizeof 型別 sizeof objict sizeof物件 strlen執行的...

關鍵字 sizeof(不是函式)

關鍵字 sizeof 不是函式 sizeof是關鍵字不是函式。sizeof在計算變數所佔空間大小時,括號可以省略,而計算型別 模子 大小時不能省略。include int getsize int data void fun int b 100 int main int a 100 int b 100...

C語言 sizeof 關鍵字

sizeof是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子,可以計算運算元的大小。sizeof的結果是無符號整數型別,通常用size t表示。sizeof可以應用於各種資料型別,包括基本的資料型別,例如整數和浮點型別,指標型別和符合資料型別,結構體等等。32位編譯器 includeint ...