-
전위 후위 증감 연산자컴퓨터 공학 기초/알고리즘 ( algorithm ) 2019. 11. 27. 12:35
위의 코드는 증감,감소 연산자 ( ++, -- ) 가 변수에 사용된 것 이다
변수앞에 연산자에 위치에따라 언제 식을 계산할지 정할 수 있다
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 를 증감 후 다음번 호출시 출력하기 때문이며 차이를 보려면 한 라인에서 증감과 출력이 동시에 이루어질 때
그 차이를 식별할 수 있다.
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 }
위와 같이 한 라인 안에서
즉 printf 함수 안에서 서식문자를 이용하여 값을 출력할 때 선처리, 후처리를 사용하여 식을 처리할 때 차이는 위와 같다
++a 선처리
-> 먼저 증감연산자 선처리 후 함수 실행
-> 출력 : 4
a++ 후처리
-> 먼저 함수 실행 후 증감연산자 수행
-> 출력 : 3
-> 다음번 print를 했을때 증감한 값인 4가 출력
즉 위의 문제는
i = 5
system.out.println (++i) -> 값 6
system.out.println (i++) -> 값 5
'컴퓨터 공학 기초 > 알고리즘 ( algorithm )' 카테고리의 다른 글
팩토리얼 0의 개수 구하기 (0) 2020.04.22 최대공약수 (유클리드호제법) 최소공배수 (0) 2020.04.21 Stack 을 이용한 알고리즘 (0) 2020.04.13 " * " 로 삼각형 만들기 (0) 2019.11.19 알고리즘이란 ? (0) 2019.11.12