본문 바로가기
C++/기초

C++ 기초 : 증감 연산자

글: 시플마 2024. 2. 6.

증감 연산자는 ++ , -- 가 있습니다.

정수 입장에서는 ++은 값을 1 올려주고 --는 값을 1 내려주는 연산자입니다.

정수에서는 그렇지만 포인터 등 다른 개념으로 확장하면

단순하게 값을 1 증감하는 연산자는 아닙니다.

따라서 한 단계 증가 또는 감소하는 개념이라고 생각하는 게 좋습니다.

 

아래 코드를 보면 변수 data의 값은 0입니다.

++ 연산자를 사용하자 data의 값이 1 증가하여 1이 되었습니다.

 

 

 

++연산자를 한 번 더 사용하자  data의 값이 다시 1 증가하여 2가 되었습니다.

 

 

 

-- 연산자를 사용하자 data의 값이 1 감소하여 1이 된 모습입니다.

 

 

 

증감 연산자는 산술 연산자와 다르게 

대입 연산자( = )를 사용하지 않아도 값이 바로 적용됩니다.

 

 

 

 


 

 

증감 연산자는 피연산자 앞에 붙을 수도, 뒤에 붙을 수도 있습니다.

앞에 붙으면 전위(전치), 뒤에 붙으면 후위(후치)라고 부릅니다.

++data;	//전위(전치)
data++;	//후위(후치)

 

 

증감 연산자 단독으로 사용하는 경우, data의 값을 바꾸기만 하므로 전치든 후치든

차이가 발생하지 않지만 증감 연산자가 다른 연산자와 같이 계산되면 차이가 생깁니다.

 

예를 들어 보겠습니다.

 

 

위 코드를 보면 data에 ++ 연산자를 붙여 값을 1 올리고 a에 대입한다고 생각할 수 있습니다.

예상대로라면 변수 a에는 11이 대입되어야 하죠.

그러나 연산이 진행된 후 a의 값을 보면 10이 들어가 있는 것을 확인할 수 있습니다.

이유는 data 뒤에 ++ 연산자가 붙었기 때문입니다. 이는 후치 연산입니다.

후치 연산은 가장 나중에 계산됩니다. 

즉, 변수 a에 변수 data의 값인 10이 먼저 대입되고 그 다음에 data의 값을 1 올리는 것입니다.

 

변수 data의 값인 10을 올리고 변수 a에 대입하려면 data 앞에 ++ 연산자를 붙여

전치 연산을 해야 합니다.

 

data 앞에 ++ 연산자를 붙여 전치 연산을 진행하자,

변수 a에 11이 대입되는 모습입니다.

즉, 먼저 data의 값을 1 올리고 이후에 변수 a에 값을 대입하는 것이죠.

 

 


 

 

증감 연산을 전치로 할 것이냐, 후치로 할 것이냐 상황에 맞게 선택할 수 있습니다.

그러나 의도한 상황이 아니라면 웬만하면 전치로 사용하는 것이 좋습니다.

이유는 후치로 사용하면 클래스나 구조체에서 안 좋은 함수를 호출할 수 있기 때문입니다.

 

 

 

 

강의 출처 : https://www.youtube.com/watch?v=PFc4g8mxOiI&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&pp=iAQB


 

'C++ > 기초' 카테고리의 다른 글

C++ 기초 : 비교 연산자  (0) 2024.02.10
C++ 기초 : 논리 연산자  (0) 2024.02.09
C++ 기초 : 산술 연산자  (0) 2024.02.06
C++ 기초 : 실수형 자료형  (0) 2024.02.06
C++ 기초 : 정수형 자료형  (0) 2024.02.02