chlghgus10   4년 전

num1이 실행해보니까 7이 나오는데 왜 7로 나오는지 이유를 모르겠어요..

jaehoo1   4년 전

(5) num1이라는 변수에 2를 넣습니다

(6) num1에 num1++ 와 ++num1 을 더한 값을 넣을 껍니다(아직 안넣었어요)

(6-1) num1++는 이 행이 끝나면 num1의 값을 1 증가시켜 줍니다(여기서의 num1 값은 2입니다)

(6-2) ++num1는 연산을 하기 전에, num1의 값을 1 증가시켜 줍니다(여기서의 num1 값은 3입니다. 또, num1값을 증가시켜주었기 때문에 위에 있는 num1도 3이 되겠죠)

(6-3) num1 = 3+3;

(6-4) 6번줄이 끝날 때, num1++를 해줍니다.(6-1내용, num1=7)

djm03178   4년 전

그렇게 될 가능성이 있을 뿐, 반드시 저렇게 된다고 정해진 건 아닙니다. 증감 연산자를 저런 방법으로 사용하는 것은 undefined behavior이기 때문에, 환경에 따라 전혀 다른 실행 결과가 나올 수 있습니다.

https://ideone.com/9CfloN

jaehoo1   4년 전

추가 설명 감사합니다.

저게 undefined behavior인지는 처음알았네요

댓글을 작성하려면 로그인해야 합니다.