C언어서 전처리, 후처리란?

여우는 야옹야옹·2025년 11월 3일
0

정보처리기사

목록 보기
3/3

전처리란?(Prefix)

++a (선처리)
먼저 값을 증가시키고 그 값을 사용한다.

#include <stdio.h>

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

    b = ++a;  // a를 먼저 1 증가시키고, b에 대입
    printf("a = %d, b = %d\n", a, b);  // a=6, b=6

    return 0;
}

후처리란?(Postfix)

a++ (후처리)
현재 값을 먼저 사용하고, 그 뒤에 값을 증가시킨다.

#include <stdio.h>

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

    b = a++;  // b에 먼저 5 대입, 이후 a를 1 증가
    printf("a = %d, b = %d\n", a, b);  // a=6, b=5

    return 0;
}

실전 예시: 반복문에서의 차이

#include <stdio.h>

int main() {
    int i;

    printf("전처리:\n");
    for(i = 0; i < 3; ++i) {
        printf("%d ", i); //결과 0,1,2
    }

    printf("\n후처리:\n");
    for(i = 0; i < 3; i++) {
        printf("%d ", i); //결과 0,1,2
    }

    return 0;
}

반복문에서는 출력결과가 동일하다
하지만 복잡한 식이나 다른 변수와 함께 쓸때 차이가 확실히 난다.

실전 예시: 다른 변수에서의 차이

#include <stdio.h>

int main() {
    int a = 5;
    int result = a++ + ++a;
    printf("a = %d, result = %d\n", a, result); //결과 a=5, result=12
    return 0;
}

a=5는 초기상태로
a++(후처리)로 a=5+1=6이 되고
++a(전처리)로 a=6+1=7이 된다.
그래서 result의 결과는 5+7=12가 된다.

profile
성장중인 개발자 (머리속의 생각을 글로 옮기는 연습을 하고 있습니다.)

0개의 댓글