在 C 語言中,sizeof
是一個運算符,用于獲取給定類型或變量的字節大小。它返回一個 size_t
類型的值,表示以字節為單位的對象大小。
sizeof
運算符有以下特點:
- 用法:
sizeof
運算符可以應用于數據類型或表達式。 - 計算靜態大小:對于數據類型,
sizeof
運算符可以計算出該類型的靜態大小,即在編譯時期已經確定的大小。 - 計算動態大小:對于表達式,
sizeof
運算符可以計算出表達式的結果所占的內存大小,包括類型本身及其包含的所有成員。 - 單位為字節:
sizeof
運算符返回的大小單位是字節,即所占用的內存空間大小。 - 不進行實際運算:
sizeof
運算符在編譯時期進行計算,不會對其操作數進行實際的計算或存取。
以下是一些示例說明 sizeof
運算符的使用:
#include <stdio.h>struct Person {char name[20];int age;
};int main() {int num = 10;float pi = 3.14;char ch = 'A';int arr[5] = {1, 2, 3, 4, 5};struct Person person;printf("sizeof(int): %zu\n", sizeof(int)); // 輸出: sizeof(int): 4printf("sizeof(float): %zu\n", sizeof(float)); // 輸出: sizeof(float): 4printf("sizeof(char): %zu\n", sizeof(char)); // 輸出: sizeof(char): 1printf("sizeof(int[5]): %zu\n", sizeof(arr)); // 輸出: sizeof(int[5]): 20printf("sizeof(struct Person): %zu\n", sizeof(struct Person)); // 輸出: sizeof(struct Person): 24printf("sizeof(person): %zu\n", sizeof(person)); // 輸出: sizeof(person): 24return 0;
}
在這個示例中,我們使用 sizeof
運算符計算了不同類型和變量的大小。輸出結果顯示了它們所占用的字節大小。例如,sizeof(int)
返回 4,表示 int
類型的變量占用 4 個字節;sizeof(struct Person)
返回 24,表示 struct Person
類型的變量占用 24 個字節。
sizeof
運算符在 C 語言中廣泛用于動態內存分配、處理二進制數據、計算數組大小等場景中,用于確保正確地分配和操作內存空間。