JavaScript is required

Đoạn lệnh sau đưa ra kết quả là gì?

void inc (void* data, int psize) {

if (psize == sizeof (char)) {

char* pchar; pchar =

(char*)data; ++(*pchar);

} else if (psize == sizeof(int)) {

int* pint; pint = (char*)data;

++(*pint);

}

}

int main() { int s = 1642; inc (s);

void << s << endl;

return 0;

}

A.

1642

B.

1643

C.

1641

D.

Lỗi biên dịch.

Trả lời:

Đáp án đúng: D


Đoạn code có lỗi biên dịch. Hàm `inc` được định nghĩa là nhận vào hai tham số: một con trỏ `void* data` và một số nguyên `int psize`. Tuy nhiên, khi gọi hàm `inc` trong hàm `main`, ta chỉ truyền vào một tham số duy nhất là biến `s`. Điều này gây ra lỗi biên dịch vì số lượng tham số truyền vào không khớp với số lượng tham số mà hàm yêu cầu. Ngoài ra, dòng code `void << s << endl;` cũng gây ra lỗi biên dịch vì `void` không phải là một đối tượng có thể xuất ra luồng. Có thể ý định của người viết là `cout << s << endl;` nhưng đã viết sai cú pháp. Do đó, đáp án đúng là 'D. Lỗi biên dịch.'

Câu hỏi liên quan