반응형
정의
- 전위연산자(++i)는 코드를 실행하기 전에 i 에 1 이 더해진다
- 후위연산자(i++)는 코드를 실행한 후에 i 에 1 이 더해진다
예제
code | name | How |
---|---|---|
++i | prefix increment operator | i = i+1; return i; |
i++ | postfix increment operator | final int t = i; i = i+1; return t; |
--i | prefix decrement operator | i = i-1; return i; |
i-- | postfix decrement operator | final int t = i; i = i-1; return t; |
int x = 2;
int y = 2;
System.out.println(x * y++);// x=2, y=2 나중에 더해지므로, 4(=2*2)를 출력한다 출력후 y=3
System.out.println(x * y++);// x=2, y=3 나중에 더해지므로, 6(=2*3)를 출력한다 출력후 y=4
int x = 2;
int y = 2;
System.out.println(x * ++y);//x=2, y=2 먼저 더해지고 코드가 실행되므로, 6(=2*3)를 출력한다
차이점
- i++ 는 코드를 실행한 후에 i 에 1 이 더해진다
- ++i 는 코드를 실행하기 전에 i 에 1 이 더해진다
전위연산자(++i) 사용시 컴퓨터 내부에서 일어나는 일
- 메모리에 저장된 값 가져오기.
- 값을 1 증가시키기
- 값을 메모리에 저장하기.
- 필요한 경우 값 할당하기.
후위연산자(i++) 사용시 컴퓨터 내부에서 일어나는 일
- 메모리에 저장된 값 가져오기.
- 이전 값을 유지하기 위해 변수의 임시 복사본 만들기.
- 값을 1 증가시키기.
- 값을 메모리에 저장하기.
- 필요한 경우 값 할당하기.
결론
- ++i가 추가적인 메모리를 사용하지 않으므로, 약간 더 빠르고 약간의 메모리를 아낄수 있다. 이는 벡엔드(Java) 계열에서는 크게 중요하지 않지만, 게임개발 이나 임배디드 계열 프로그래밍(C, C++)같이 메모리가 중요한 코드에서는 (++i)를 쓰는게 좀더 메모리를 아낄 수 있다.
- i++ 는 코드를 실행한 후에 i 에 1 이 더해진다
- ++i 는 코드를 실행하기 전에 i 에 1 이 더해진다
반응형
'old > Programming' 카테고리의 다른 글
Java에서 컴페레터comparator와 컴페터블compatable의 차이점 (0) | 2021.08.26 |
---|---|
[git]을 [windows 10]에 설치하기 (0) | 2021.08.26 |
stable sort와 unstable sort의 차이점 (0) | 2021.08.25 |
[Java 예외]IllegalArgumentException 대처법 (0) | 2021.08.24 |
[java코드]노드 리버스 (0) | 2021.08.20 |