책 내용 질문하기
문제 2 후치연산자 질문
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
102
조회수
59
작성일
2017-03-27
작성자
탈퇴*원
첨부파일

p.102 문제 2번의 후치연산자에 대해 질문드립니다.

코딩을 보면

int a= 12, b= 8, c=2, d=3;

a /= b++ - c * d;

a를 결과로 출력하는 문제인데

답지에 보면 a = 12/ (8 -(2*3))

으로 계산하고 a의 결과는 6이라고 나와있습니다.

후치연산자 b++이 왜 바로 8로 바뀌는 건가요? b++의 의미가 b=b+1이라고 한다면 9가 되어야 하는거 아닌가요?

그리고 후치연산자 개념이 연산한후 1 의 증가라고 한다면 a의 연산을 다 마친후 +1이 되어야 하니까

답은 7이 아닌가요?

답변
2017-03-27 15:28:03

안녕하세요.

후치연산은 우선 변수의 값을 사용하고 나서 해당 변수의 값을 증가시킵니다.

a /= b++ - c * d;

는 a = a / (b++ - c * d); 와 같고

연산자 우선 순위에 의해

a = a / (b++ - (c * d));와 같습니다.

결국 12 / 8 - (2 * 3) = 12 / 8 - 6 = 12 / 2 = 6

으로 a에 6이 저장된 후에 b의 값은 9로 변경됩니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-03-27 15:28:03

    안녕하세요.

    후치연산은 우선 변수의 값을 사용하고 나서 해당 변수의 값을 증가시킵니다.

    a /= b++ - c * d;

    는 a = a / (b++ - c * d); 와 같고

    연산자 우선 순위에 의해

    a = a / (b++ - (c * d));와 같습니다.

    결국 12 / 8 - (2 * 3) = 12 / 8 - 6 = 12 / 2 = 6

    으로 a에 6이 저장된 후에 b의 값은 9로 변경됩니다.

    오늘도 즐거운 하루 되세요.

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