Đây là câu hỏi hai chân: một cho C và một cho C++.Toán tử bậc ba không có toán hạng thứ hai
gì C và các tiêu chuẩn C++ có thể nói về việc sử dụng sau đây của ternary (?:
) điều hành:
const char* opt = /* possible NULL pointer */;
const char* str = opt ?: "";
khi nào nó trở thành quy phạm pháp luật? Nó là một phần mở rộng của trình biên dịch? Các yêu cầu về toán hạng đầu tiên (chuyển đổi hoàn toàn thành bool
/int
) là gì?
Cảm ơn bạn. Và yêu cầu về toán hạng đầu tiên là gì? – YSC
@YSC: Các điều kiện và giá trị chân lý được kết hợp: 'opt?:" "' Tương đương với 'opt? opt: "" '. –
TartanLlama đã đưa ra câu trả lời đó. – 101010