책 내용 질문하기
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 

     

    위와 같이 저장되어 자동으로 문자열을 출력하게 되죠.

    때문에 오히려 값을 지정하는 *를 붙여 사용하게되면 에러가 출력되게 됩니다.

     

    행복한 하루되세요 :)

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