UNIT 13 num1++ + ++num1 질문
, 이 은총님이 작성int num1 = 2;
num1 = num1++ ++num1; 을 이용하여
num1을 출력해보니 값이 7이 나왔는데,
실무에서는 잘 쓰이지 않는다 하지만, 계산이 되는 원리가 궁금합니다.
위의 소스에서 계산될 순위를 보았는데도 잘 모르겠네요
1. x++ 연산 (방향은 오른쪽으로)
2. ++x 연산 (방향은 왼쪽으로)
3. 덧셈
여기까진 알겠는데 컴퓨터가 어떻게 계산을 하는지 궁금합니다.
회신: UNIT 13 num1++ + ++num1 질문
, 도장_ 관리자님이 작성이전 답변을 참고하세요.
또한, 85.17 시퀀스 포인트를 참고하세요.
간단히 정리하면
-. C 언어 표준에 따르면 시퀀스 포인트 위반 -> 잘못된 코드(invalid code)
-. 정의되지 않은 동작(UB, Undefined Behavior)이므로 컴파일러마다 결과가 다름
UB는 사용하지 않아야 함.
i++ + ++i를 문제로 내는 교재, 강사가 있다면 C 언어 표준을 모를 가능성이 있음.
시퀀스 포인트 위반이 뭔지 모를 수 있음.