728x90
반응형
증감 연산자
증감 연산자는 ++, -- 기호를 이용하는 연산자로 피연산자의 값을 1 증가 또는 1 감소시켜 준다.
증감 연산자 | 설명 |
++ a | 선 증가, 후 연산(먼저 증가시키고 그 다음 연산) |
a++ | 선 연산, 후 증가(먼저 연산, 그 다음 증가) |
--a | 선 감소, 후 연산(먼저 감소, 그 다음 연산) |
a-- | 선 연산, 후 감소(먼저 연산, 그 다음 감소) |
여기서 연산은 = 연산자를 이용한 연산을 의미
예제를 하나 보겠습니다.
#include <stdio.h>
int main(void){
int num1=10;
printf("%d \n",num1);
num1++;
printf("%d \n",num1); // a++ 선 연산, 후 증가(먼저 연산하고 그 다음 증가시킨다.)
++num1;
printf("%d \n",num1); // ++a 선 증가, 후 연산(먼저 증가시키고 그 다음 연산한다.)
--num1;
printf("%d \n",num1); // --a 선 감소, 후 연산(먼저 감소시키고 그 다음 연산한다.)
num1--;
printf("%d \n",num1); // a-- 선 연산, 후 감소(먼저 연ㅅ나하고 그 다음 감소시킨다.)
return 0;
}
결과
10
11
12
11
10
증감 연산자가 단독으로 쓰였을 때는 단순히 숫자 하나를 증가시키거나 감소시크는 역할을 한다.
전위 방식, 후위 방식
증감 연산자는 전위 방식과 후위 방식에 차이가 있다.
전위 방식 : 증감 연산자의 위치가 변수의 앞에 위치하는 표현 (++a, --a)
후위 방식 : 변수의 뒤에 위치하는 표현 (a++, a--)
두 방식의 차이는 무엇일까? 다음 예제를 보며 알아보자.
#include <stdio.h>
int main(void){
int num1=10, num2=10;
int a,b;
a=++num1; // 전위방식, 선 증가 후 연산
printf("%d, %d \n", a, num1); // 결과: 11, 11
b=num2++; // 후위방식, 선 연산 후 증가
printf("%d, %d \n", b, num2); // 결과: 10, 11
return 0;
}
결과
11, 11
10, 11
전위 방식의 경우 'num1 += 1' 을 수행하고 이후에 'a = num1'을 수행하고
후위 방식의 경우 'b = num2'를 수행하고(선 연산) 이후에 'num2 += 1'을 수행하라는 의미이다.
풀어서 설명하면 다음과 같다.
#include <stdio.h>
int main(void){
int num1=10, num2=10;
int a,b;
// a=++num1 표현
num1=num1+1;
a=num1;
printf("%d, %d \n",a, num1);
// b=num2++ 표현
b=num2;
num2=num2+1;
printf("%d, %d \n",b, num2);
return 0;
}
요약
전위 방식: 선 증가, 후 연산
// a=++num1 표현
num1=num1+1;
a=num1;
printf("%d, %d \n",a, num1);
후위 방식: 선 연산, 후 증가
// b=num2++ 표현
b=num2;
num2=num2+1;
printf("%d, %d \n",b, num2);
이상으로 증감 연산자의 전위 방식, 후위 방식에 대해 알아봤습니다.
반응형
'IT > [C, C++]' 카테고리의 다른 글
[C] 포인터와 메모리 할당 개념 정리 (0) | 2022.02.17 |
---|---|
[C] 터미널에 한글 깨짐이 발생할 때 설정 방법 (win10, vscode 환경) (0) | 2022.01.22 |
[C] 심볼릭 상수 지정하기 (0) | 2022.01.06 |