JavaScript is required

What is output? #include #include typedef struct { int x; static int y; }st; void main() { printf("sizeof(st) = %d", sizeof(st)); getch(); }

A.

4

B.

Complier error

C.

8

Trả lời:

Đáp án đúng: A


Trong đoạn code C này, chúng ta cần xác định kích thước của struct `st`. Struct này có một thành viên `x` kiểu `int` và một thành viên `y` kiểu `static int`. Điểm quan trọng ở đây là thành viên `static` thuộc về class (struct) chứ không thuộc về instance của struct. Điều này có nghĩa là `static int y` không chiếm không gian bộ nhớ trong mỗi đối tượng `st` được tạo ra. Kích thước của một struct chỉ được xác định bởi các thành viên *non-static* của nó. Trong trường hợp này, struct `st` chỉ có một thành viên non-static là `int x`. Kích thước của một `int` thường là 4 bytes (tùy thuộc vào compiler và kiến trúc hệ thống, nhưng phổ biến nhất là 4 bytes). Do đó, `sizeof(st)` sẽ trả về 4. Vì vậy, đáp án đúng là A. 4.

Câu hỏi liên quan