어떻게 컴파일러는 다음과 같은 경우를 구분하지 않습니다 : 적절한 브라켓없이 cout을 가진 < <가 항상 것으로 보인다 컴파일러 자체가 가정 대부분의 경우에CPP의 오류가있는 << 연산자
cout << a; //Case 1 :prints a
cout << a << b; // Case 2 :prints both a and b
cout << (a << b); // Case 3 :Left shifts a by b bits and prints shifted a
cout << a&b; // Case 4 :Throws an ERROR
을 입력 스트림에 삽입. 그러나 이것이 마지막 경우에 실패하는 이유는 무엇입니까? IMO : 비트에 대한 대답을 적절하게 제공해야합니다. b. 브라켓 팅을하면 다음과 같이 정확합니다.
cout<< (a&b); //gives correct output of bitwise and a , b.
왜 4 번째 경우에 오류가 발생합니까?
C++ 연산자 우선 순위에 대한 [참조] (http://en.cppreference.com/w/cpp/language/operator_precedence)를보십시오. – George
이는 연산자 우선 순위 때문일 것입니다. 또한 왼쪽과 오른쪽 인수를 받아들이는'<<'와 같은 2 진 연산자의 개념이 있습니다. 'cout'의 경우,'cout'을 리턴하여 계속 진행할 수 있습니다. 당신이 연산자의 우선 순위를 잘못했을 때 ... – AndyG
나는 매우 잘 알고있다. <<보다 큰 우선 순위를 가지고있다. 그러나 왜 <<는 _insertion_ 연산자이고 4 번째의 경우에는 왼쪽으로 쉬프트가 아닌가? @George – Akash