안녕하세요~~ 이번에 올려주신 합격전략집 열심히 보고있습니다 감사합니다ㅎㅎ
그러던 중에 문제를 풀고 해설을 보다가 궁금한 부분이 생겨서 질문드립니당!!
합격전략집 2일차의 p.7의 2번 문제에서
q = d % b + ++a * c— || c - —a >= 10; 부분이 궁금합니다
첨부된 사진이 제가 푼 방법입니다
여기서 궁금한 부분은
1. *가 %보다 연산자 우선순위가 높지 않은지와
2. 2번에서 c는 후치연산으로 연산에 c=5로 사용된 후 c=4가 되어야 한다고 생각해서
7번에서 c=4, a=3으로 4-3=1이 되는게 아닌가용??ㅠㅠㅠ
번거로우시겠지만 저 부분이 잘 이해가 안되서... 자세한 설명 부탁드립니다ㅠㅠㅠ
감사합니다
안녕하세요 길벗수험서 운영팀입니다.
실기 교재 54쪽의 우선순위표를 참고해주세요.
[1]
산술 연산자 * / %는 동위 입니다. 3 연산자의 우선순위는 존재하지 않으며 같이 사용된 경우 결합규칙에 따라 왼쪽부터 오른쪽으로 연산됩니다.
[2]
예, C언어에서는 전치 후치 연산을 할 때, 해당 식에 사용되는 모든 전치연산자가 식 수행 전에 전부 연산되고, 해당 식이 종료된 이후 모든 후치연산자가 연산됩니다.
즉 1번에 해당하는 --a, 3번에 해당하는 ++a가 식 계산 전에 수행되어 a는 결국 원래 값인 3이 연산에 사용되고, 2번에 해당하는 c--는 식 계산 후에 수행되어 원래 값이 5가 연산에 사용되게 되죠.
행복한 하루되세요 :)
-
관리자2020-06-26 11:11:29
안녕하세요 길벗수험서 운영팀입니다.
실기 교재 54쪽의 우선순위표를 참고해주세요.
[1]
산술 연산자 * / %는 동위 입니다. 3 연산자의 우선순위는 존재하지 않으며 같이 사용된 경우 결합규칙에 따라 왼쪽부터 오른쪽으로 연산됩니다.
[2]
예, C언어에서는 전치 후치 연산을 할 때, 해당 식에 사용되는 모든 전치연산자가 식 수행 전에 전부 연산되고, 해당 식이 종료된 이후 모든 후치연산자가 연산됩니다.
즉 1번에 해당하는 --a, 3번에 해당하는 ++a가 식 계산 전에 수행되어 a는 결국 원래 값인 3이 연산에 사용되고, 2번에 해당하는 c--는 식 계산 후에 수행되어 원래 값이 5가 연산에 사용되게 되죠.
행복한 하루되세요 :)