본문 바로가기
C & C++/윤성우의 열혈 C 프로그래밍

[열혈 C] 단항 연산자와 증가, 감소 연산자

by 거북이 코딩 2023. 10. 3.

부호연산의 의미를 갖는 + 연산자와 - 연산자

 

 + 연산자와 - 연산자는 이항 연산자로서 덧셈과 뺄셈을 의미하지만, 피연산자가 하나인 단항 연산자로서 부호를 뜻하기도 한다. 이는 +3, -7과 같이 숫자 앞에 붙는 부호를 뜻하는 것이므로 생소하지 않을 것이다. 그럼 이와 관련해서 다음 예제를 보자

#include <stdio.h>

int main(void)
{
    int num1 = +2;
    int num2 = -4;

    num1 = -num1;    //num1의 부호를 바꾸어 주기 위해 -를 사용했다.
    printf("num1: %d \n", num1);
    num2 = -num2;    //num2의 부호를 바꾸어 주기 위해 -를 사용했다.
    printf("num2: %d \n", num2);
    return 0;
}
num1: -2
num2: 4

 위의 예시에서 num1과 num2에 마이너스( - )를 붙인 것처럼 변수에도 단항 연산자로서의 마이너스를 붙일 수 있다.

 

증가, 감소 연산자

 

연산자 연산자의 기능
++num 값을 1 증가 후, 속한 문장의 나머지를 진행
num++ 속한문장을 먼저 진행한 후, 값을 1 증가
--num 값을 1 감소 후, 속한 문장의 나머지를 진행
num-- 속한문장을 먼저 진행한 후, 값을 1 감소

 

 예제를 통해 증가, 감소 연산자를 이해해보자.

#include <stdio.h>

int main(void)
{
    int num1 = 12;
    int num2 = 12;
    printf("num1: %d \n", num1);
    printf("num1++: %d \n", num1++);    //속한문장을 먼저 진행한 후, 값을 1 증가
    printf("num1: %d \n", num1);

    printf("num2: %d \n", num2);
    printf("++num2: %d \n", ++num2);    //값을 1 증가 후, 속한 문장의 나머지를 진행
    printf("num2: %d \n", num2);
    return 0;
}
num1: 12
num1++: 12
num1: 13
num2: 12
++num2: 13
num2: 13

 

#include <stdio.h>

int main(void)
{
    int num1 = 10;
    int num2 = (num1--) + 2;    //속한 문장을 먼저 진행한 후, 값을 1감소

    printf("num1: %d \n", num1);
    printf("num2: %d \n", num2);
    return 0;
}
num1: 9
num2: 12

 위의 두 번째 예시에서 num1--를 소괄호 안에 넣었지만 역시 속한 문장이 다 진행되어야 값이 1 감소하는 것을 볼 수 있다.