연산자 우선순위 및 연관성: 정의 및 평가 순서와의 관계
소개
프로그래밍 언어, 연산자 우선 순위 및 연관성은 연산자가 평가되는 순서를 결정합니다. 많은 프로그래밍 교과서에서 이러한 속성을 나열하는 표를 제공하지만 해당 속성의 해석과 정의의 출처에 관한 질문이 발생합니다.
질문
답변
연산자 우선순위 및 연관성 정의
연산자 우선순위와 연관성은 언어 표준 자체 내에서 정의됩니다. 표준 문법은 표현식 구성 규칙을 지정합니다. 이러한 규칙을 살펴보면 연산자의 우선순위와 연관성을 도출할 수 있습니다.
예를 들어 C에서 덧셈식(덧셈과 뺄셈)의 문법은 다음과 같습니다.
additive-expression: multiplicative-expression additive-expression + multiplicative-expression additive-expression - multiplicative-expression
이 규칙으로부터 우리는 곱셈 표현식(곱셈과 나눗셈)이 덧셈 표현식의 하위 규칙이기 때문에 덧셈 표현식보다 우선순위가 더 높다는 것을 추론할 수 있습니다. 또한, 덧셈 표현식은 다른 덧셈 표현식으로 재귀적으로 구성될 수 있다는 규칙을 통해 및 - 연산자의 왼쪽에서 오른쪽 결합성을 유추할 수 있습니다.
평가 순서
연산자 우선순위와 연관성, 평가 순서를 구분하는 것이 필수적입니다. 우선순위와 연관성이 연산자 그룹화 방법을 결정하는 반면, 평가 순서는 개별 표현식이 평가되는 순서를 나타냅니다. C에서는 우선순위와 연관성에 따라 엄격하게 평가가 수행된다는 보장이 없습니다.
예를 들어 f1() f2() * f3() 표현식에서 * 연산자는 연산자보다 우선순위가 높으므로 결과적으로 f1() (f2() * f3()) 그룹화에서. 그러나 평가 순서는 정의되어 있지 않으므로 f3(), f1() 또는 f2()가 먼저 평가될 수 있습니다.
논리 OR(||) 연산자와 같은 특정 연산자는 피연산자 평가에 시퀀스를 적용하여 단락을 허용합니다. x에서 || y, x는 항상 y보다 먼저 평가되어 y 평가가 필요한지 결정합니다.
위 내용은 연산자 우선 순위와 연관성 표는 프로그래밍 언어의 표현식 평가에 대해 실제로 무엇을 알려줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!