JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

class rec {

public:

int *w;

rec(int a) {

w = new int; *w = a;

}

} ;

Void main() {

Rec r(1);

cout << r.w;

}

A.

1

B.

0

C.

Địa chỉ của r.w.

D.

Lỗi biên dịch.

Trả lời:

Đáp án đúng: C


Đoạn mã C++ được cung cấp có một số vấn đề cần xem xét: 1. **Thiếu `#include ` và `using namespace std;`**: Để sử dụng `cout`, ta cần phải khai báo thư viện `iostream` và không gian tên `std`. 2. **`Void main()`**: Hàm `main` trong C++ phải trả về kiểu `int`, tức là `int main()`. 3. **In địa chỉ**: Đoạn code `cout << r.w;` sẽ in ra địa chỉ của con trỏ `w`, chứ không phải giá trị mà con trỏ `w` trỏ tới. Mặc dù có các lỗi trên, câu hỏi yêu cầu xác định kết quả *nếu* đoạn lệnh được biên dịch và chạy. Vì vậy, nếu bỏ qua lỗi biên dịch, `r.w` sẽ in ra địa chỉ của vùng nhớ mà `w` đang trỏ tới. Vì vậy, đáp án đúng nhất là C. Địa chỉ của r.w.

Câu hỏi liên quan