“우리 대부분은 초라한 옷차림과 엉터리 가구들을 부끄럽게 여기지만, 초라한 생각과 엉터리 철학을 부끄럽게 여길 줄 알아야 한다.” – Albert Einstein

20150309
전후위 연산자 동작방식

5, 6년 넘게 코드 친다고 쳤는데 이걸 지금 알았네요. 흑흑

int x = 2;
std::cout << x++ + x << std::endl;

두 번째 줄 찍혀 나올 걸 보면 cpp에서는 4이고 c#에서는 5가 나옵니다.

cpp는 생각한 대로 나와서 넘어갔는데 c#에서 5가 나와서 한동안 나는 뭘 잘못 공부했나 했네요 ;ㅁ;

c#에서는 전후위 연산자 동작에 대해 정확히 명시되어 있지만, cpp에서는 ‘정의되지 않은 동작’이어서 그렇다고 합니다.


참고

http://stackoverflow.com/questions/17165292/prefix-operator-difference-in-c-and-c-sharp
http://stackoverflow.com/questions/6457130/pre-post-increment-operator-behavior-in-c-c-java-c-sharp

댓글이 2개 우앙 | cat > 타닥타닥

댓글 남기기

* 표시된 곳은 반드시 입력해주세요