JavaScript is required

Nếu có các khai báo sau. Câu nào sau đây là đúng: char msg[10] char * ptr; char value;

A.

ptr=value;

B.

ptr=msg;

C.

Cả hai câu trên đều đúng

D.

Cả hai câu trên đều sai

Trả lời:

Đáp án đúng: B


Phân tích câu hỏi:

Câu hỏi này kiểm tra sự hiểu biết về con trỏ và mảng trong C, đặc biệt là cách gán địa chỉ cho con trỏ.

Đánh giá các phương án:

  • Phương án A: ptr = value;

    Câu lệnh này sai. value là một biến kiểu char, chứa một ký tự. Khi gán value cho ptr (là một con trỏ kiểu char *), bạn đang cố gắng gán một giá trị (ký tự) cho một biến lưu địa chỉ. Điều này gây ra lỗi kiểu dữ liệu.

  • Phương án B: ptr = msg;

    Câu lệnh này đúng. msg là một mảng kiểu char, và khi sử dụng tên mảng (msg) mà không có chỉ số, nó sẽ tự động chuyển đổi thành một con trỏ đến phần tử đầu tiên của mảng. Vì vậy, ptr = msg gán địa chỉ của phần tử đầu tiên trong mảng msg cho con trỏ ptr. Kiểu dữ liệu phù hợp (char *).

Kết luận:

Phương án B đúng, phương án A sai.

Câu hỏi liên quan