책 내용 질문하기
1권 83p 기출따라잡기 문제 1번
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
83
조회수
605
작성일
2019-04-01
작성자
탈퇴*원
첨부파일
변수 str에는 KOREA의 주소값이 저장되는데 str을 출력했을때 왜 주소값이 아니라 문자값이 나오나요? 문자값을 출력하려고 해도 에러가 발생해야 하는 것 아닌가요?
printf("%8.3s\n", *str); 라고 표시해야 KOREA가 출력되는거 아닌가요? %s를 쓰면 자동으로 주소값이 아니라 주소가 가리키는 문자값을 출력해주는 건가요?
답변
2019-04-02 11:33:33
안녕하세요 길벗수험서 운영팀입니다.
네, 마지막에 예측하신 것이 정답입니다.
서식지정자 %s 는 문자열을 출력하는 서식지정자로 해당 문자열의 시작위치를 입력받아 NULL값이 있는 곳까지 출력하게 됩니다.
*str = "korea"를 저장했다면
str[0]='k'
str[1]='o'
str[2]='r'
str[3]='e'
str[4]='a'
str[5]=NULL
위와 같이 저장되어 자동으로 문자열을 출력하게 되죠.
때문에 오히려 값을 지정하는 *를 붙여 사용하게되면 에러가 출력되게 됩니다.
행복한 하루되세요 :)
-
관리자2019-04-02 11:33:33
안녕하세요 길벗수험서 운영팀입니다.
네, 마지막에 예측하신 것이 정답입니다.
서식지정자 %s 는 문자열을 출력하는 서식지정자로 해당 문자열의 시작위치를 입력받아 NULL값이 있는 곳까지 출력하게 됩니다.
*str = "korea"를 저장했다면
str[0]='k'
str[1]='o'
str[2]='r'
str[3]='e'
str[4]='a'
str[5]=NULL
위와 같이 저장되어 자동으로 문자열을 출력하게 되죠.
때문에 오히려 값을 지정하는 *를 붙여 사용하게되면 에러가 출력되게 됩니다.
행복한 하루되세요 :)