출력 스트림의 연산자 우선 순위와 연관성
C에서 출력 스트림 연산자(<<)의 동작은 직관에 반할 수 있습니다. 여러 인수가 제공되는 경우. 인수가 왼쪽에서 오른쪽으로 처리되는 것처럼 보일 수도 있지만 항상 그런 것은 아닙니다.
아래 코드 조각에서 볼 수 있듯이 << 연산자와 제공된 인수의 개수입니다.
myQueue.enqueue('a'); myQueue.enqueue('b'); cout << myQueue.dequeue() << myQueue.dequeue(); // prints "ba"
이 경우 첫 번째 << 연산자가 괄호 밖에 있으므로 첫 번째 대기열 제거 호출이 먼저 평가됩니다. 이 결과는 두 번째 << 연산자입니다.
그러나 << 연산자를 괄호 안에 배치하면 연산 순서가 변경됩니다.
myQueue.enqueue('a'); myQueue.enqueue('b'); cout << (myQueue.dequeue() << myQueue.dequeue()); // prints "ab"
여기서 괄호는 << 첫 번째 대기열 제거 호출이 있는 연산자로 인해 첫 번째 << 대기열 제거 결과를 평가합니다. 이 결과는 두 번째 대기열 제거 호출에 대한 인수로 사용되며 그 뒤에는 외부 << 연산자입니다.
이 동작은 << 연산자에는 시퀀스 포인트가 없습니다. 이는 컴파일러가 인수의 평가 순서를 최적화할 수 있음을 의미합니다. 일관된 출력을 보장하려면 괄호를 사용하여 인쇄되는 인수를 명시적으로 그룹화하는 것이 좋습니다.
위 내용은 연산자 우선 순위와 연관성은 C 출력 스트림 순서에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!