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