for문을 하다가 갑자기 궁금한점이 생겼습니다.
, J Y님이 작성for(초기식;조건식;변화식)을 공부하다 궁금해졌는데요.
만약 변수가 i라면 1씩 증감하는 변화식으로 i++이나 i--을 사용하는데 ++i나 --i를 사용해도 i++이나 i--와 동일한 결과가 나타나는지 궁금하고 무슨차이가 있는지도 궁금합니다.
프로그램 돌려보니 동일하던데 제가 틀릴수도 있어서 질문드립니다.
Re: for문을 하다가 갑자기 궁금한점이 생겼습니다.
, 도장_ 관리자님이 작성전위 연산자는 UNIT 13에 설명되어 있습니다.
반복문에서는 차이가 없습니다.
더 자세한 설명은 시퀀스 포인트를 읽어봐야 합니다.
당장 이해가 안 되면 나중에 차례대로 학습한 다음에 마지막에 다시 보는 것을 추천합니다.
대다수 C 언어 입문서가 설명하는
i = 1;
i = i++ + ++i;
같은 코드는 표준에서 정의되지 않은 동작(UB, Undefined Behavior)이고, 시퀀스 포인트 위반이므로 올바른 C 언어 코드가 아닙니다.
정의되지 않은 동작의 코드는 컴파일러 구현체마다 결과가 달라지므로 정답이 있을 수 없습니다. 그럼에도 상당수 C 언어 입문서가 정답을 제시하고 있고, 엉터리를 학습하고 있습니다.