Tại sao in kết quả của toán tử điều kiện lại bị lỗi?

Cho mình hỏi tại sao code này của mình lại bị lỗi vậy ạ?

#include <iostream>
using namespace std;

int main()
{
    string s;
    s=(1)?"true":"false";
    cout<<(1)?"true":"false"<<endl;
}

trong khi em

cout<<s;

lại không bị gì ạ?

đặt toán tử điều kiện trong (…) nhe bạn
cout<<((1)?"true":"false")<<endl;

Do độ ưu tiên của các toán tử thôi bạn.
<< có độ ưu tiên cao hơn ? : nên bị lỗi.
Bạn có thể xem thêm tại bài viết Độ ưu tiên của các toán tử C++!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?