반응형
- 증감연사자 정리
선증가 후연산이란?
++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 |