C 연산자 우선순위

minho-log·2026년 1월 22일

C

목록 보기
15/33

<공부 주제>

C 연산자 우선순위

<공부한 내용 정리>

C 언어에서 연산자 우선순위는 여러 연산자가 한 식에 함께 있을 때 어떤 연산을 먼저 수행할지 결정하는 규칙이다.
우선순위를 잘못 이해하면 코드는 컴파일되지만 결과가 틀리는 문제가 발생할 수 있다.

🔹 연산자 우선순위의 기본 원칙
1. 우선순위가 높은 연산자부터 계산
2. 우선순위가 같으면 결합 방향에 따라 계산
3. 괄호 ()가 최우선

🔹 주요 연산자 우선순위
높음
()
++, --
*, /, %
+, -
<, <=, >, >=
==, !=
&&
낮음 `
최저 =

🔹 산술 연산자 우선순위 예제

int result = 10 + 2 * 3;

계산 순서
2 * 3 → 6
10 + 6 → 16

🔹 괄호 사용 예제

int result = (10 + 2) * 3;

출력결과
36

-> 괄호가 있으면 우선순위를 무시하고 먼저 계산

🔹 관계 + 논리 연산자 우선순위

int a = 10;
int b = 5;

if (a > b && b > 0)
{
    printf("조건 만족\n");
}

계산 순서:
1. a > b
2. b > 0
3. &&

🔹 대입 연산자 우선순위

int a;
a = 3 + 2 * 4;

계산 순서:
1. 2 * 4 → 8
2. 3 + 8 → 11
3. a = 11

🔹 우선순위 실수 예제

int x = 1;
int y = 0;

if (x == 1 || y == 1 && x == 0)
{
    printf("참\n");
}

실제 해석:
y == 1 && x == 0 먼저 계산
→ x == 1 || (y == 1 && x == 0)
이런 경우 괄호로 명확히 표현하는 것이 좋다.

🔹 권장 작성 습관

if ((x == 1 || y == 1) && x == 0)
{
    ...
}
  • 가독성 ↑
  • 실수 ↓
  • 유지보수 ↑

<예제 / 실습 코드>

#include <stdio.h>

int main(void)
{
    int a = 5;
    int b = 3;

    printf("%d\n", a + b * 2);
    printf("%d\n", (a + b) * 2);

    return 0;
}

<헷갈렸던 점>

  • 논리 연산자 우선순위가 직관과 다른 경우
  • =이 생각보다 우선순위가 낮다는 점
  • 괄호 없이 조건식을 쓰면 가독성이 떨어지는 점

<오늘의 정리>

  • 연산자에는 우선순위가 존재한다
  • 괄호 ()가 가장 높은 우선순위를 가진다
  • 헷갈리는 식은 괄호로 명확히 표현한다
  • 가독성이 곧 안전성이다
profile
개발 공부를 하며 직접 부딪히고 공부한 것을 기록합니다.

0개의 댓글