C sizeof 運算子
獲取記憶體大小
我們在資料型別章節中介紹過,變數的記憶體大小因型別而異
資料型別 | 大小 |
---|---|
int |
2 或 4 位元組 |
float |
4 位元組 |
double |
8 位元組 |
char |
1 位元組 |
記憶體大小指的是一個型別在計算機記憶體中佔用的空間大小。
要實際獲取資料型別或變數的大小(以位元組為單位),請使用 sizeof
運算子
示例
int myInt;
float myFloat;
double myDouble;
char myChar;
printf("%lu\n", sizeof(myInt));
printf("%lu\n", sizeof(myFloat));
printf("%lu\n", sizeof(myDouble));
printf("%lu\n", sizeof(myChar));
自己動手試一試 »
請注意,我們使用 %lu
格式說明符來列印結果,而不是 %d
。這是因為編譯器期望 sizeof 運算子返回一個 long unsigned int
(%lu
),而不是 int
(%d
)。在某些計算機上它可能適用於 %d
,但使用 %lu
更安全。
為什麼我應該知道資料型別的大小?
瞭解不同資料型別的大小很重要,因為它與記憶體使用和效能有關。
例如,char
型別的大小是 1 位元組。這意味著如果您有一個包含 1000 個 char
值的陣列,它將佔用 1000 位元組 (1 KB) 的記憶體。
針對正確的目的使用正確的資料型別將節省記憶體並提高程式的效能。
您將在本教程的後續部分了解更多關於 sizeof
運算子的知識,以及如何在不同場景中使用它。