Search
Duplicate
🍕

증감연산자의 위치에 따른 차이점

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
C
Scrap
태그
cs
9 more properties

증감연산자

증가연산자++ 와 감소연산자--로 나뉜다.
전위 ++n 와 후위 n++ 나뉜다.
증감 연산자만 단독으로 사용할 때는 큰 차이가 없지만 와 연산자를 사용한 뒤 다른 변수에 할당할 때에는 위치에 큰 차이가 난다.

후위연산자(Postfix Operator)

n++; n--;
#include <stdio.h> int main() { int num1 = 2; int num2 = 2; int num3; int num4; num3 = num1++; // num1의 값을 num3에 할당한 뒤 num1의 값을 1 증가시킴 num4 = num2--; // num2의 값을 num4에 할당한 뒤 num2의 값을 1 감소시킴 printf("%d %d\n", num3, num4); // 2 2 return 0; }
C
복사
실행결과 : 2 2
num3 = num1++; // 풀어서 쓰면 다음과 같다. num3 = num1; num1 = num1 + 1; num4 = num2--; // 풀어서 쓰면 다음과 같다. num4 = num2; num2 = num2 - 1;
C
복사
후위 연산자는 할당 이후에 연산을 하게 되므로 바뀌기 전의 값이 다른 변수에 할당된다.
증감 연산자가 변수 뒤에 쓰이면 연산을 나중에 처리한다는 뜻이다.

전위연산자(Prefix Operator)

++n; --n;
#include <stdio.h> int main() { int num1 = 2; int num2 = 2; int num3; int num4; num3 = ++num1; // num1의 값을 1 증가시킨 뒤 num3에 할당 num4 = --num2; // num2의 값을 1 감소시킨 뒤 num4에 할당 printf("%d %d\n", num3, num4); // 3 1 return 0; }
C
복사
실행결과 : 3 1
num3 = ++num1; // 풀어서 쓰면 다음과 같다. num1 = num1 + 1; num3 = num1; num4 = --num2; // 풀어서 쓰면 다음과 같다. num2 = num2 - 1; num4 = num2;
C
복사
전위 연산자는 할당 전에 연산을 하게 되므로 바뀐 값이 다른 변수에 할당된다.
증감 연산자가 변수 앞에 쓰이면 연산을 먼저 처리한다는 뜻이다.
변수에 할당하지 않고 함수의 인수로 사용했을 때도 동작 방식은 같다.
<후위연산자를 사용했을 때> #include <stdio.h> int main() { int num1 = 2; int num2 = 2; printf("%d %d\n", num1++, num2--); // 2 2: num1, num2의 값을 먼저 출력한 뒤 증감 연산자 동작 printf("%d %d\n", num1, num2); // 3 1: 증감 연산자가 동작한 결과 return 0; } 실행결과 2 2 3 1
C
복사
<전위연산자를 사용했을 때> #include <stdio.h> int main() { int num1 = 2; int num2 = 2; printf("%d %d\n", ++num1, --num2); // 3 1: 증감 연산자가 먼저 동작한 뒤 num1, num2의 값을 출력 printf("%d %d\n", num1, num2); // 3 1: 앞과 같은 값이 출력됨 return 0; } 실행결과 3 1 3 1
C
복사