책 내용 질문하기
시나공 정처산기 실기 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과 동일한 역할을 수행한다고 보시면 됩니다.
행복한 하루되세요 :)