책 내용 질문하기
정보처리기사 필기 4과목 p.561
도서
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편 [기본서]
페이지
561
조회수
677
작성일
2020-05-08
작성자
탈퇴*원
첨부파일

p.561쪽 5번 문제 해설이 이해가 되지 않아서 질문드립니다.

a = ++c + c++ + ++c + c++; 에서

연산 순서가 왜 1, 3, 2, 4인지 이해가 되지 않습니다. 

그리고 순서 3번이 완료된 이후에 왜 4번에서는 증가된 값으로 연산 되지 않았는지 궁금합니다.

감사합니다.

답변
2020-05-08 09:41:29

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

 

먼저 교재의 전치, 후치 연산자 적용 방식은 C 언어 기준임을 말씀드립니다.

 

전치연산자는 '하나의 식'이 시작하기 전에 모두 적용됩니다.

후치연산자는 '하나의 식'이 종료된 이후에 모두 적용됩니다.

 

하나의 식은 일반적으로 쉼표(,) 세미콜론(;)으로 구분됩니다.

 

문제 2의 5번은 하나의 식으로  

전치 연산자 2개는 c+c+c+c가 수행되기 전에 수행됩니다.

후치 연산자 2개는 c+c+c+c가 수행된 이후에 수행됩니다.

 

c가 기존에 4였으니 전치 연산 2개를 수행하여 6이되어, c+c+c+c는 6+6+6+6이 되어 a에는 24가 저장됩니다.

그 다음 식이 종료되면 c는 후치 연산 2개가 수행되어 8이 됩니다.

 

이러한 과정을 바탕으로 먼저 적용되는 전치연산자 2개가 1번 2번 순을 갖고

나중에 적용되는 후치연산자 2개가 3번 4번 순을 갖게 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-05-08 09:41:29

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

     

    먼저 교재의 전치, 후치 연산자 적용 방식은 C 언어 기준임을 말씀드립니다.

     

    전치연산자는 '하나의 식'이 시작하기 전에 모두 적용됩니다.

    후치연산자는 '하나의 식'이 종료된 이후에 모두 적용됩니다.

     

    하나의 식은 일반적으로 쉼표(,) 세미콜론(;)으로 구분됩니다.

     

    문제 2의 5번은 하나의 식으로  

    전치 연산자 2개는 c+c+c+c가 수행되기 전에 수행됩니다.

    후치 연산자 2개는 c+c+c+c가 수행된 이후에 수행됩니다.

     

    c가 기존에 4였으니 전치 연산 2개를 수행하여 6이되어, c+c+c+c는 6+6+6+6이 되어 a에는 24가 저장됩니다.

    그 다음 식이 종료되면 c는 후치 연산 2개가 수행되어 8이 됩니다.

     

    이러한 과정을 바탕으로 먼저 적용되는 전치연산자 2개가 1번 2번 순을 갖고

    나중에 적용되는 후치연산자 2개가 3번 4번 순을 갖게 됩니다.

     

    행복한 하루되세요 :)

  • 관리자
    2020-05-11 11:53:05

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

     

    다음은 visual studio 2019에서 수행한 결과입니다.


     

    연속된 전치 연산자나 후치 연산자의 사용은 언어 뿐만이 아니라 컴파일러 버전에 따라서도 조금씩 차이가 날 수 있습니다.

     

    이와같이 결과가 달라지는 특성 상 실제 시험에 출제될 가능성은 낮으니, 이러한 방식의 연산자 사용이 가능하다 정도로 보고 넘어가시는 것이 좋을 것 같습니다.

     

    행복한 하루되세요 :)

  • *
    2020-05-10 02:09:20

    안녕하세요.

    p.561 문제 2의 5번 문제(a = ++c + c++ + ++c + c++;)의 답이 24라고 나와있는데 실행을 시켜보면 25가 나옵니다.

    왜 답이 다른가요..?

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