溫馨提示×

如何正確使用c語言sizeof()

小樊
103
2024-09-08 22:41:00
欄目: 編程語言

sizeof() 是 C 語言中的一個運算符,它用于計算數據類型或對象所占用的內存字節數

  1. 計算基本數據類型的大?。?/li>
#include<stdio.h>

int main() {
    printf("Size of int: %lu bytes\n", sizeof(int));
    printf("Size of float: %lu bytes\n", sizeof(float));
    printf("Size of double: %lu bytes\n", sizeof(double));
    printf("Size of char: %lu bytes\n", sizeof(char));
    return 0;
}
  1. 計算結構體或聯合體的大?。?/li>
#include<stdio.h>

typedef struct {
    int id;
    float score;
    char name[20];
} Student;

int main() {
    printf("Size of Student structure: %lu bytes\n", sizeof(Student));
    return 0;
}
  1. 計算數組的大?。?/li>
#include<stdio.h>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    printf("Size of array: %lu bytes\n", sizeof(arr));
    printf("Number of elements in the array: %d\n", n);
    return 0;
}

注意事項:

  • sizeof() 的結果是一個 size_t 類型的值,因此在打印時需要使用 %zu%lu(在某些編譯器中可能需要使用 %u)格式說明符。
  • 當使用 sizeof() 計算指針變量的大小時,它將返回指針本身所占用的內存大小,而不是指針所指向的數據的大小。
  • 在計算結構體或聯合體的大小時,需要注意可能存在的內存對齊。編譯器會自動在結構體或聯合體的成員之間添加填充字節,以確保每個成員都對齊到其自然邊界上。這可能導致實際的大小大于預期。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女