증감 연산자는 ++ , -- 가 있습니다.
정수 입장에서는 ++은 값을 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 |