Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Toán tử sizeof trong C

Toán tử sizeof là toán tử đơn mục (unary) thời gian biên dịch, trả về kích thước (byte) của toán hạng. Áp dụng cho biến, kiểu dữ liệu, biểu thức, con trỏ.

Kết quả có thể khác nhau giữa hệ 32-bit và 64-bit (đặc biệt con trỏ).

Ví dụ 1: Kích thước kiểu dữ liệu và biến

#include <stdio.h>
int main() {
    int a = 16;
    printf("Kich thuoc bien a: %zu\n", sizeof(a));
    printf("Kich thuoc int: %zu\n", sizeof(int));
    printf("Kich thuoc char: %zu\n", sizeof(char));
    printf("Kich thuoc float: %zu\n", sizeof(float));
    printf("Kich thuoc double: %zu\n", sizeof(double));
    return 0;
}
Kich thuoc bien a: 4
Kich thuoc int: 4
Kich thuoc char: 1
Kich thuoc float: 4
Kich thuoc double: 8

Ví dụ 2: Kích thước biểu thức

#include <stdio.h>
int main() {
    char a = 'S';      // 1 byte
    double b = 4.65;   // 8 byte
    printf("Kich thuoc a: %zu\n", sizeof(a));
    printf("Kich thuoc bieu thuc a+b: %zu\n", sizeof(a+b)); // double = 8
    int s = (int)(a+b);
    printf("Kich thuoc sau ep kieu: %zu\n", sizeof(s));    // int = 4
    return 0;
}
Kich thuoc a: 1
Kich thuoc bieu thuc a+b: 8
Kich thuoc sau ep kieu: 4

Lưu ý: Dùng %zu để in size_t (kiểu trả về của sizeof). sizeof không đánh giá biểu thức (không chạy code), chỉ tính kiểu tại compile-time.