책 내용 질문하기
2020정보처리기사 실기 p54 예제 중 전치연산과 후치연산 관련
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
54
조회수
246
작성일
2020-06-25
작성자
이*우
첨부파일

 

p54 문제 2번 d % b + ++a * c-- || c- --a >=10 에서

                                      ↑    ↑

                                       l     l

                                    질문 부분들

 

정수형 변수 a=3, b=4, c=5, d=6으로 선언된 경우

--a에서 전치연산이므로 a는 2가 되어 코드를 수행해야 하지 않습니까?

 

그리고

논리연산자 || 앞 c--가 후치연산으로 ++a * c--에서 3*5로 15 결과가 나오는 과정까지는 이해했습니다.

그렇다면 논리연산자 || 뒤의 c는 한 번 연산이 끝났으므로 4가 되어야 하지 않나요??

 

저는 c - --a가 4 - 2 로 2가 되는 결과를 얻었습니다.

그러나 해설에는 c - --a가 5 -3 으로 2가 된다고 서술되어 있습니다.

결국, 2가 되는 결과자체는 변함이 없습니다만 그 과정에서 유튜브 강의와 교재 해설에 의문점이 들어서 질의합니다.

 

제가 이렇게 생각한 근거는 다음과 같습니다.

앞 장 p 52 ~53에서

6번 문제 a+= ++a % b++ ? c* d :b /c; 코드수행 풀이과정을 보면

조건연산자 ? 앞의 b++에서 b는 2로 연산되었고 그 이후 

조건연산자 ? 뒤의 b/c에서 b는 한 번의 연산이 끝났으므로 후치 증가 연산으로 적용되어 b가 3이되어 b/c의 결과는 1이 된다고 서술되어 있습니다.

 

답변
2020-06-25 11:36:26

안녕하세요 길벗수험서 운영팀입니다.

 

먼저 알아두실 것은 C언어에서는

1. 전치 후치 연산을 할 때, 해당 식에 사용되는 모든 전치연산자가 식 수행 전에 전부 연산되고, 해당 식이 종료된 이후 모든 후치연산자가 연산됩니다.

2. 전치/후치 연산자가 하나의 '식'을 기준으로 식 앞/뒤에서 계산이 이루어진다는 것을 기억하세요.

 

말씀하신 52~53쪽의 삼항연산자의 경우는 3개의 식으로 나뉘어져 있습니다.

조건식 ? 식1 : 식2;

때문에 조건식에서 전/후치 연산자가 한번 수행, 식2에서 전/후치 연산자가 한번 수행되게 되죠.

(참인 경우, 조건식과 식1에서 두번 전/후치 연산자가 수행됨)

 

반면, 54쪽의 문제 2번의 경우에는 전체 문장이 하나의 식입니다.

때문에 전체 식 수행 전/후로 전치/후치 연산자가 수행되게 되죠.

1번에 해당하는 --a, 3번에 해당하는 ++a가 식 계산 전에 수행되어 a는 결국 원래 값인 3이 연산에 사용되고,

2번에 해당하는 c--는 식 계산 후에 수행되어 원래 값이 5가 연산에 사용되게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2020-06-25 11:36:26

    안녕하세요 길벗수험서 운영팀입니다.

     

    먼저 알아두실 것은 C언어에서는

    1. 전치 후치 연산을 할 때, 해당 식에 사용되는 모든 전치연산자가 식 수행 전에 전부 연산되고, 해당 식이 종료된 이후 모든 후치연산자가 연산됩니다.

    2. 전치/후치 연산자가 하나의 '식'을 기준으로 식 앞/뒤에서 계산이 이루어진다는 것을 기억하세요.

     

    말씀하신 52~53쪽의 삼항연산자의 경우는 3개의 식으로 나뉘어져 있습니다.

    조건식 ? 식1 : 식2;

    때문에 조건식에서 전/후치 연산자가 한번 수행, 식2에서 전/후치 연산자가 한번 수행되게 되죠.

    (참인 경우, 조건식과 식1에서 두번 전/후치 연산자가 수행됨)

     

    반면, 54쪽의 문제 2번의 경우에는 전체 문장이 하나의 식입니다.

    때문에 전체 식 수행 전/후로 전치/후치 연산자가 수행되게 되죠.

    1번에 해당하는 --a, 3번에 해당하는 ++a가 식 계산 전에 수행되어 a는 결국 원래 값인 3이 연산에 사용되고,

    2번에 해당하는 c--는 식 계산 후에 수행되어 원래 값이 5가 연산에 사용되게 되죠.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.