JavaScript is required

 Nếu có các khai báo sau:

Char msg[10] ;

Char *ptr;

Char value;

Câu nào sau đây là đúng:

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


Đề bài cho các khai báo: - `char msg[10];` : Khai báo một mảng `msg` kiểu `char` có 10 phần tử. - `char *ptr;` : Khai báo một con trỏ `ptr` kiểu `char`. - `char value;` : Khai báo một biến `value` kiểu `char`. Phân tích các phương án: - **A. `ptr = value;`**: Sai. `ptr` là một con trỏ (lưu địa chỉ), còn `value` là một biến kiểu `char` (lưu giá trị). Không thể gán trực tiếp giá trị của `value` cho `ptr`. Cần phải gán địa chỉ của một biến kiểu `char` cho con trỏ `ptr`. Ví dụ: `ptr = &value;` (gán địa chỉ của `value` cho `ptr`). - **B. `ptr = msg;`**: Đúng. `msg` là tên của mảng, trong nhiều ngữ cảnh (như trong phép gán này), nó tự động chuyển đổi thành địa chỉ của phần tử đầu tiên của mảng (tức là `&msg[0]`). Do đó, câu lệnh này gán địa chỉ của phần tử đầu tiên trong mảng `msg` cho con trỏ `ptr`. Vì `msg` là mảng kiểu `char` và `ptr` là con trỏ kiểu `char`, phép gán này hợp lệ. - **C. Cả hai câu trên đều đúng.** Sai vì A sai. - **D. Cả hai câu trên đều sai.** Sai vì B đúng. Vậy, chỉ có phương án B đúng.

Câu hỏi liên quan