책 내용 질문하기
83쪽 기출 따라잡기 1번 문제에 대한 문의
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
83
조회수
65
작성일
2018-05-21
작성자
탈퇴*원
첨부파일

문제 마지막 줄에 보면 printf 함수에서 출력 대상이 str로 되어있는데

printf("%8.3s\n", str)

이 문제에서 str 변수는 포인터 변수로서 선언되어있습니다.

그 변수의 값이 아니라 가지고 있는 주소값이 가리키는 곳의 값(이 문제에서는 KOREA라는 문자열)을 출력하려면

"str"이라고 할 게 아니라 "*str"이라고 해야하는게 아닌지 의문이 듭니다.

printf("%8.3s\n", *str)

78페이지에 있는 예제를 봐도 "b"를 출력한 값이랑 "*b"를 출력한 값은 명백히 다른 것 같은데요

검토해 보시고 답변 부탁드리겠습니다

감사합니다^^

답변
2018-05-23 09:11:50

안녕하세요.

포인터 문자형 변수에 문자열이 저장되는 경우 배열과 같이 인식됩니다.

그러므로 *str이 아니라 str이라고 하면 배열의 대표명으로 사용한 것과 동일하므로

해당 배열의 모든 값, 즉 문자열 전체가 출력됩니다.

78쪽과 같이 문자형 변수가 아니라 정수형 변수로 선언된 경우 해당 값을 처리할 때는 *b와 같이 사용합니다.

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

  • *
    2018-05-23 09:11:50

    안녕하세요.

    포인터 문자형 변수에 문자열이 저장되는 경우 배열과 같이 인식됩니다.

    그러므로 *str이 아니라 str이라고 하면 배열의 대표명으로 사용한 것과 동일하므로

    해당 배열의 모든 값, 즉 문자열 전체가 출력됩니다.

    78쪽과 같이 문자형 변수가 아니라 정수형 변수로 선언된 경우 해당 값을 처리할 때는 *b와 같이 사용합니다.

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

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