Toán tử dấu phẩy hoạt động như thế nào trong C ++?
Chẳng hạn, nếu tôi làm:
a = b, c;
Có một kết thúc bằng b hoặc c?
(Vâng, tôi biết điều này rất dễ kiểm tra - chỉ cần ghi lại ở đây để ai đó tìm thấy câu trả lời nhanh chóng.)
Cập nhật: Câu hỏi này đã bộc lộ một sắc thái khi sử dụng toán tử dấu phẩy. Chỉ để tài liệu này:
a = b, c; // a is set to the value of b!
a = (b, c); // a is set to the value of c!
Câu hỏi này thực sự được lấy cảm hứng từ một lỗi đánh máy trong mã. Những gì đã được dự định là
a = b;
c = d;
Đã trở thành
a = b, // <- Note comma typo!
c = d;
a = (b, c);
.
a = b, c = d;
thực sự không thực hiện như dự định a = b; c = d;
?
b
và d
là các đánh giá chức năng sử dụng (và sửa đổi) một trạng thái chung, thứ tự thực hiện không được xác định cho đến khi C++17
.