[c] 연산자 우선순위에 대한 흔한 오류

연산자 우선순위에 대한 흔한 오류

프로그래밍을 하다 보면 연산자 우선순위에 대한 오류를 범하는 것이 흔합니다. 이는 코드를 해석하는 데 혼란을 줄 수 있으며 원하지 않는 결과를 초래할 수 있습니다.

문제점

#include <stdio.h>

int main() {
    int a = 10;
    int b = 5;
    int c = 2;

    int result = a * b + c;

    printf("Result: %d", result);
    return 0;
}

위 코드에서 result의 값을 예측해 보겠습니다.

여러분은 곱셈(*)과 덧셈(+) 연산자가 있기 때문에 a * b + c가 먼저 실행되어 결과가 52가 될 것이라고 생각할 수 있습니다. 하지만, 이 코드는 a * (b + c)와 동일하게 해석되므로 결과는 20이 됩니다.

해결책

위와 같은 오류를 방지하려면 괄호를 사용하여 명시적으로 원하는 연산의 순서를 지정해야 합니다.

int result = a * (b + c);

이제 우리가 원하는 결과를 얻을 수 있습니다.

결론

연산자 우선순위에 대한 오해를 피하려면 항상 명시적으로 괄호를 사용하여 연산 순서를 명확하게 지정해야 합니다. 오류를 방지하고 코드를 더 읽기 쉽게 만들 수 있습니다.

참고문헌: