Nếu có các khai báo sau: char msg[10] char value; Câu nào sau đây sẽ là đúng:
Trả lời:
Đáp án đúng: A
Phân tích câu hỏi:
Câu hỏi kiểm tra kiến thức về cách truy cập và gán giá trị cho các phần tử trong mảng ký tự (chuỗi) trong C/C++.
Đánh giá các phương án:
- Phương án A:
msg[2] = value;
Đây là một câu lệnh gán hợp lệ. Nó gán giá trị của biếnvalue
(kiểuchar
) cho phần tử thứ 3 (vì chỉ số mảng bắt đầu từ 0) của mảngmsg
. Vìmsg
là một mảng ký tự vàvalue
cũng là một ký tự, việc gán này hoàn toàn hợp lệ. - Phương án B:
msg = value;
Đây là một câu lệnh gán không hợp lệ. Trong C/C++, tên mảng (ví dụ:msg
) đại diện cho địa chỉ của phần tử đầu tiên trong mảng. Bạn không thể gán trực tiếp một giá trị (ở đây là một ký tựvalue
) cho địa chỉ của mảng. Điều này tương đương với việc cố gắng thay đổi địa chỉ mà mảng trỏ tới, điều này không được phép. - Phương án C: Cả hai câu trên (loại)
- Phương án D: Không câu nào đúng (loại)
Kết luận:
Chỉ có phương án A là đúng.