Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C의 연산자 우선 순위 및 연관성

<시간/>

연산자 우선 순위는 식의 용어 그룹을 결정하고 식을 평가하는 방법을 결정합니다. 특정 연산자는 다른 연산자보다 우선 순위가 높습니다. 예를 들어, 곱하기 연산자는 더하기 연산자보다 우선 순위가 높습니다.

예를 들어, x =7 + 3 * 2; 여기서 x는 연산자 *가 +보다 우선순위가 높기 때문에 20이 아닌 13이 할당되므로 먼저 3*2를 곱한 다음 7을 더합니다.

여기서 우선 순위가 가장 높은 연산자는 테이블 상단에 표시되고 가장 낮은 연산자는 하단에 나타납니다. 표현식 내에서 우선순위가 높은 연산자가 먼저 평가됩니다.

카테고리 연산자 연관성
접미사 () [] -> . ++ - - 왼쪽에서 오른쪽으로
단항 + - ! ~ ++ - - (유형)* 및 크기 오른쪽에서 왼쪽으로
승법 * / % 왼쪽에서 오른쪽으로
첨가제 + - 왼쪽에서 오른쪽으로
시프트 <<>> 왼쪽에서 오른쪽으로
관계형 <<=>>= 왼쪽에서 오른쪽으로
평등 ==!= 왼쪽에서 오른쪽으로
비트 AND & 왼쪽에서 오른쪽으로
비트별 XOR ^ 왼쪽에서 오른쪽으로
비트 OR | 왼쪽에서 오른쪽으로
논리 AND && 왼쪽에서 오른쪽으로
논리적 OR || 왼쪽에서 오른쪽으로
조건부 ?: 오른쪽에서 왼쪽으로
과제 =+=-=*=/=%=>>=<<=&=^=|= 오른쪽에서 왼쪽으로
쉼표 , 왼쪽에서 오른쪽으로

예시 코드

#include <stdio.h>
main() {
   int a = 20;
   int b = 10;
   int c = 15;
   int d = 5;
   int e;
   e = (a + b) * c / d; // ( 30 * 15 ) / 5
   printf("Value of (a + b) * c / d is : %d\n", e );
   e = ((a + b) * c) / d; // (30 * 15 ) / 5
   printf("Value of ((a + b) * c) / d is : %d\n" , e );
   e = (a + b) * (c / d); // (30) * (15/5)
   printf("Value of (a + b) * (c / d) is : %d\n", e );
   e = a + (b * c) / d; // 20 + (150/5)
   printf("Value of a + (b * c) / d is : %d\n" , e );
   return 0;
}

출력

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50