<aside> 💡 앞에 붙이냐 뒤에 붙이냐에따라 다름 (아는내용이라 패스)
</aside>
<aside> 💡 왜 증감연산자는 하드웨어와 연관이 있을까?
CPU 상에서 지원하는 하드웨어 명령어 에서 이런 명령어도 있어요.
딱 숫자 하나만 증가시키는 명령어 .
그리고 이 숫자 하나만 증가시키는 명령어는 숫자 2를 더하는 명령어 보다 빨라요.
하드웨어 자체에 1:1로 매핑 되어있는 명령어기 때문에 꾸준히 쓰고있음
</aside>
<aside> 💡 부동 소수점 3.14를 증감하면 무슨일이 벌어질까?
3.14 → 4.14 (C#에서)밑바닥 코드를 보자
a = 5 일 경우
++a
a++
의 경우를 봅시다.
과연 '++' 함수는 어떻게 구현되어있을까요??
int operator++(){
this->value+=1;
return this->value;
};
int operator++(<u>***int***</u>){
**int temp=this->value; //일단 this 값을 temp에 백업해둠**
this->value+=1;
return **temp; //temp를 반환함**
}
<aside> 💡 결국 원본값을 어딘가에 넣어놨다가
넣어둔 값을 증가시키고
다시 원래 있던 값을 옮긴다는 의미!
증감 연산자 (전위,후위 연산) → 다음 내용 참고
sum ++;
00007FF6632F255D mov eax,dword ptr [sum]
00007FF6632F2560 inc eax
00007FF6632F2562 mov dword ptr [sum],eax
int32 eax = sum;
eax = eax + 1;
sum = eax;
</aside>