저번 시간에 대입 연산자인 += -= *= /= %= 를 배워보았다.
이번에는 대입 연산자 중에서도 조금 신경 써야 될 부분인 후위 연산자와 전위 연산자에 대해서 배워보겠다.
바로 시작해봅시다~~!!!
먼저 간단하게 복습을 하면 "a += b"는 "a = a + b"와 같은 뜻이라고 하였다.
오늘 새로 배운 것은 " a ++"와 "++ a"이다.
겉으로 보기에 두 개의 다른 점은 + 가 앞에 있냐 뒤에 있냐의 차이이다.
먼저 개념을 설명하자면 "a ++"은 후위 연산자, "++ a"은 전위 연산자라고 한다.
그리고 "++"는 "+=1"과 같은 식이다. 즉, "a ++"은 "a += 1"과 출력 값이 같다는 의미이다.
그렇다면 후위 연산자부터 알아보겠다.
x = 5
y = x ++
위와 같이 변수를 잡아두었을 때 x와 y값을 한번 계산해보자.
먼저 "y = x ++"은 "y = x +=1"라면 y값과 x값은 둘 다 6이 나올 것 같다.
하지만 틀렸다. 일단 출력값부터 보자.
출력된 결과는 "int x"의 값은 6, "int y"의 값은 5로 나왔다.
왜 이렇게 나온것인지 설명하기 전에 전위 연산자도 출력시켜 보겠다.
여기서는 "int x"의 값은 6, "int y"의 값도 6으로 나왔다.
무슨 차이가 있길래 "++"의 위치 하나 때문에 출력 값이 다르게 나온 것일까.
먼저 후위 연산자는 "int y = x ++"에서 ++가 x뒤에 있기 때문에 먼저 x의 값을 y에 저장한 뒤 연산을 한다.
무슨 소린지 모르겠다....면!!!
int y = x ++
int y = x
int x = x ++ = x + 1
이렇게 본다면 대충 이해할수 있을 것이다. 아마....
y의 값에 연산되기 전의 x값을 저장하고 그다음 x가 연산을 시작하는 원리이다.
출력 값을 한번 더 확인해 본다면 x = 6, y = 5의 값이 나왔다.
그렇다면 전위 연산자도 비슷한 시스템일 것이다.
int y = ++ x
int x = x + 1
int y = x
y의 값은 x 값에 1을 더 하고 난 다음의 값이 y에 들어간다.
x는 1을 더해서 6이 된 상태이니 그다음 x의 값을 y에 넣게 되면 출력된 값과 같이 x = 6, y = 6이라는 값이 나오는 것이다.
단번에 이해했다면 당신은 지니어스!!!!
막상 이해하면 간단한 문제지만 처음봤을 때는 이게 뭔가..... 싶었다.
이번에 배운 이 전위 후위 연산자는 나중에도 잘못하면 엄청 헷갈리는 부분이라고 다들 말하고 꽤 중요한 파트라고 이야기한다. 그만큼 완벽하게 이해를 하고 넘어가는 데까지 시간이 조금 걸렸다.
하지만 이렇게 오늘도 하나의 지식을 쌓아버렸다. ㅎㅎㅎㅎㅎ
오늘은 여기까지 하도록 하겠다.
다음 시간에 계~~~~ 속됩니다!!!!!
'TIL > C#' 카테고리의 다른 글
조건문 (if-else) (0) | 2020.09.07 |
---|---|
비교, 논리, 삼항 연산자 (0) | 2020.09.05 |
대입 연산자 (0) | 2020.09.04 |
문자열 연산자 (0) | 2020.09.04 |
연산자 (0) | 2020.09.02 |
댓글