본문 바로가기
* Language/C

[C언어] 헷갈리는 증감 연산자(++a, a++) 차이 한 번에 이해하기

by codinguser 2021. 8. 17.

C언어 증감연산자 전위 후위 이해하기
C언어 증감연산자(전위, 후위)

 

C언어를 공부하다 보면, 처음에 직면하게 되는 문제가 증감연산자(전위, 후위)이다.

그럴수록 많은 사례를 보는것 보다 하나의 원리를 파고들어 이해하는게 훨씬 효과적이다.

 

 

우선 큰 원리는 아래와 같다.

 

(1) 

b = a++

    b = a;

    a = a + 1;

 

(해설)

:a를 b에다 먼저 넣고

나중에 a를 1증가 시켜야 한다.

 

(2)

b = ++a;

    a = a + 1;

    b = a;

 

(해설)

:a를 먼저 증가 시키고

그 증가시킨 a를 b에다 넣는다

 

 

 

 

코드로 살펴보자


 

(1)

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main() {
    int a = 1;
    int b = 2;
    
    b = a++;
 
    // a = 2, b = 1
    printf("%d %d\n", a, b);
}
cs

초기값 a = 1 , b = 2이다.

 

근데 a가 증감이 뒤에 붙었다.

그러면? 아 나중에 a에다가 1을 올리고 일단, 초기 값을

b에다 넣어야 겠구나.

 

(초기)

a = 1

b = 2

 

↓(대입)

b = 1

a = 2

 

 

 

 

 

(2)

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main() {
    int a = 1;
    int b = 2;
    
    b = ++a;
 
    // a = 2, b = 2
    printf("%d %d\n", a, b);
}
cs

 

 

(초기)

a = 1

b = 2,

↓아 a를 먼저 연산 해줘야 겠구나

a = 2

↓ 그리고 그 값을 b에다 담으니

b = 2

 

결국 a = 2 , b = 2가 나오겠구나.

 

 

 

 

 

-끝-

댓글