JavaScript is required

Trong các thứ tự sau đây, thứ tự nào là đúng khi gọi các hàm trong đoạn mã bên dưới? a = f1(11, 16) * f2(12/8) + f3();

A.

f1, f2, f3

B.

B.f3, f2, f1

C.

Thứ tự có thể thay đổi tùy theo từng biên dịch viên

D.

Không có đáp án nào ở trên

Trả lời:

Đáp án đúng: C


Trong biểu thức `a = f1(11, 16) * f2(12/8) + f3();`, thứ tự thực hiện các hàm phụ thuộc vào trình biên dịch. Thông thường, các trình biên dịch sẽ thực hiện các hàm từ trái sang phải. Tuy nhiên, do các hàm này không phụ thuộc vào nhau (không có tác dụng phụ ảnh hưởng đến nhau), trình biên dịch có thể tối ưu hóa và thay đổi thứ tự thực hiện để tăng hiệu suất. Vì vậy, không có một thứ tự cố định nào đúng cho tất cả các trường hợp.

Câu hỏi liên quan