본문 바로가기
TIL/C#

대입 연산자 (2) 후위 전위 연산자

by jaemmm 2020. 9. 4.

저번 시간에 대입 연산자인 += -= *= /= %= 를 배워보았다.

이번에는 대입 연산자 중에서도 조금 신경 써야 될 부분인 후위 연산자전위 연산자에 대해서 배워보겠다.

바로 시작해봅시다~~!!!


먼저 간단하게 복습을 하면 "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

댓글