Cho khai báo. Câu lệnh nào không hợp lệ?
struct T {
int x;
float y;
}
t, * p, a[10]
struct T {
int x;
float y;
}
t, * p, a[10]
Trả lời:
Đáp án đúng: D
Câu hỏi kiểm tra về con trỏ và cách sử dụng nó với struct trong C/C++.
Khai báo `struct T { int x; float y; } t, *p, a[10];` tạo ra:
- `t`: một biến kiểu `struct T`.
- `*p`: một con trỏ trỏ đến kiểu `struct T`.
- `a[10]`: một mảng 10 phần tử, mỗi phần tử có kiểu `struct T`.
Phân tích từng đáp án:
- A. `p = &t;`: `&t` là địa chỉ của biến `t` (kiểu `struct T`), gán địa chỉ này cho con trỏ `p` (kiểu con trỏ trỏ đến `struct T`). Câu lệnh này hợp lệ.
- B. `p = &t.x;`: `&t.x` là địa chỉ của thành viên `x` (kiểu `int`) của biến `t`. Tuy nhiên, `p` là con trỏ trỏ đến kiểu `struct T`, không phải kiểu `int`. Do đó, câu lệnh này không hợp lệ vì kiểu dữ liệu không phù hợp.
- C. `p = &a[5];`: `&a[5]` là địa chỉ của phần tử thứ 6 (chỉ số 5) trong mảng `a` (kiểu `struct T`). Gán địa chỉ này cho con trỏ `p` (kiểu con trỏ trỏ đến `struct T`). Câu lệnh này hợp lệ.
- D. `p = &a;`: `&a` là địa chỉ của mảng `a`, có thể được coi là địa chỉ của phần tử đầu tiên của mảng (kiểu `struct T`). Do đó, nó có thể được gán cho con trỏ `p`. Câu lệnh này hợp lệ.
Vậy, câu lệnh không hợp lệ là B. p=&t.x;
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
