본문 바로가기

C & C++/C언어

[C] 증감연산자 (선처리 후연산, 후처리 선연산)

반응형

  • 증감연사자 정리

선증가 후연산이란?

++a; //연산자인 ++가 변수의 앞에 있는 경우 a의 값을 1 더한 후 출력

선감소 후연산이란?

--a; //연산자인 --가 변수의 앞에 있는 경우 a의 값을 1 감소 후 출력

 

후증가 선연산이란?

a++; //연산자인 ++가 변수의 뒤에 있는 경우 a의 값을 출력 후 1을 더함

 

감소 선연산이란?

a--; //연산자인 --가 변수의 뒤에 있는 경우 a의 값을 출력 후 1을 감소

 

 

  • 일반 증감연산 소스

#include<stdio>

int main(){
	
    int a=3;
	a++;
	printf("a의 값: %d",a); //a의 값: 4

	a--;
	printf("a의 값: %d",a); //a의 값: 3

	++a;
	printf("a의 값: %d",a); //a의 값: 4
	
	--a;
	printf("a의 값: %d",a); //a의 값: 3

} 

 

위의 소스에서는 a++,++a,a--,--a가 별 차이 없어보입니다.

a를 증감 후 다음번 호출시 출력하기 때문인데

차이는 한 라인에서 증감과 출력이 동시에 이루어질 때 발생합니다.

 

 

  • 증감과 출력이 동시에 이루어지는 소스

#include<stdio>

int main(){

	int a=3;

	printf("a의 값: %d",++a); //4 -> 선처리
	
	printf("a의 값: %d",--a); //3 -> 선처리

	printf("a의 값: %d",a++); //3

	printf("a의 값: %d",a);   //4 -> 후처리 다음 호출에서 더해진 값출력

	printf("a의 값: %d",a--); //4

	printf("a의 값: %d",a);   //3 -> 후처리 다음 호출에서 감소된 값출력

	printf("a의 값: %d",a++ + a); //7 -> a++의 값은 3, 다음 호출되는 a의 값은 4

}

 

선처리(선증가 ++a, 선감소 --a)시 a의 값은 1을 더한 값 또는 1감소한 값이 출력되고,

후처리(후증가 a++, 후감소 a--)시 a의 값은 계산이 되지 않고 그대로 출력됩니다.

이후 증감 했던 연산자가 다시한번 호출되면 계산된 값이 호출되어 1을 더한 값 또는 1감소한 값으로 출력됩니다.

 

반응형

'C & C++ > C언어' 카테고리의 다른 글

[C] Hello world - Visual Studio 기본프로그램 만들기  (0) 2019.11.04
[C] rand()함수/ srand()함수  (0) 2019.11.01
[C] 포인터 변수(&변수 )  (0) 2019.10.31
[C] 진수 변환  (0) 2019.10.31
[C] if문, else if문, else문 개념  (0) 2019.10.31