sizeof
是 C 和 C++ 語言中的一個運算符,用于計算數據類型或對象所占用的內存字節數
使用 sizeof
計算數組大小:
當處理數組時,使用 sizeof
可以避免硬編碼數組大小。例如:
#include<stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
size_t arr_size = sizeof(arr) / sizeof(arr[0]);
for (size_t i = 0; i < arr_size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
使用 sizeof
進行內存分配:
在為數據結構分配內存時,使用 sizeof
可以確保分配正確大小的內存。例如:
#include<stdio.h>
#include <stdlib.h>
struct Student {
char name[50];
int age;
};
int main() {
int n = 5;
struct Student *students = (struct Student *) malloc(n * sizeof(struct Student));
if (students == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
// ... 使用 students 數組
free(students);
return 0;
}
使用 sizeof
進行類型轉換:
當將指針從一種類型轉換為另一種類型時,使用 sizeof
可以確保正確的轉換。例如:
#include<stdio.h>
void pointer_arithmetic(int *ptr, int offset) {
char *char_ptr = (char *) ptr;
char_ptr += offset * sizeof(int);
ptr = (int *) char_ptr;
printf("New pointer value: %p\n", ptr);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
pointer_arithmetic(arr, 2);
return 0;
}
通過使用 sizeof
,您可以確保代碼更加健壯、可維護和可移植。在編寫代碼時,請務必考慮使用 sizeof
來優化內存管理和類型轉換。