책 내용 질문하기
시나공 정처산기 실기 1권, 86쪽 문제1번 질문
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
86
조회수
223
작성일
2021-02-24
작성자
탈퇴*원
첨부파일

문제1번

#include <stdio.h>

main()

{

char *str;

str="KOREA";

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

}

 

답 : KOR 

 

이라고 되어 있는데요

해설에는 str="KOREA" 의미가,

str은 주소를 기억하는 포인트 변수이므로 str에 "KOREA"가 기억되는 것이 아니라 "KOREA"라는 문자열이 메모리의 어딘가에 저장된 후 그 저장된 곳의 주소가 str에 기억된다. 라고 되어 있습니다.

 

그러면 해설의 의미대로라면 본문에서 str="KOREA"가 아니라 *str="KOREA"가 되어야 하는 것 아닌가요?

답변
2021-02-25 13:03:55

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

 

문자열 취급이 일반적인 경우가 좀 다르다고 이해하시는 것이 좋습니다.

 

실제 str을 분해해보면 6개의 char자료형 공간을 갖게 되고,

각 마지막을 제외한 공간은 각 문자를 가리키는 아스키 코드 값을 갖게 됩니다.

 

즉 포인터 str은 char str[6]의 str과 동일한 역할을 수행한다고 보시면 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2021-02-25 13:03:55

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

     

    문자열 취급이 일반적인 경우가 좀 다르다고 이해하시는 것이 좋습니다.

     

    실제 str을 분해해보면 6개의 char자료형 공간을 갖게 되고,

    각 마지막을 제외한 공간은 각 문자를 가리키는 아스키 코드 값을 갖게 됩니다.

     

    즉 포인터 str은 char str[6]의 str과 동일한 역할을 수행한다고 보시면 됩니다.

     

    행복한 하루되세요 :)

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