책 내용 질문하기
기출문제중 포인터에 대해 질문합니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
83
조회수
58
작성일
2018-03-13
작성자
탈퇴*원
첨부파일

포인터의 변수가 가리키는 곳의 값을 말할 때는 *을 붙인다

83페이지 문제 1 ,2 를보면

문제 1 printf("%8.3s/n",str);

문제 2 printf("%c, %c/n", *p, *(p-2));

두 문제다 문자형 변수가 저장된곳의 주소를 기억할 포인터변수 str이랑 p가 선언이 되었는데

문제1 -> str앞에 *이 없고 문제2 -> p앞에는 * 이붙어 *p 가 되는지 궁금합니다.

str에도 *이붙어 *str로 해야 str이 가리키는 곳의 값이 되어 출력이 되는게 아닌가요??

답변
2018-03-14 09:39:00

안녕하세요.

포인터 변수로 선언된 변수를 사용할 때

str과 같이 * 없이 사용하게 되면 해당 변수가 가르키는 곳의 값 전체를 대상으로 합니다.

*str과 같이 *를 사용하면 해당 변수의 첫번째 값이 됩니다.

즉 str 에 "KOREA"가 저장되어 있다면

str로 출력하면 KOREA가 출력되고

*str로 출력하면 K가 출력됩니다.

단 str로 출력할 때는 문자열이 출력되므로 %s를 서식 문자열로 사용해야 하고

*str로 출력할 때는 한 글자가 출력되므로 %c를 서식 문자열로 사용해야 합니다.

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

  • *
    2018-03-14 09:39:00

    안녕하세요.

    포인터 변수로 선언된 변수를 사용할 때

    str과 같이 * 없이 사용하게 되면 해당 변수가 가르키는 곳의 값 전체를 대상으로 합니다.

    *str과 같이 *를 사용하면 해당 변수의 첫번째 값이 됩니다.

    즉 str 에 "KOREA"가 저장되어 있다면

    str로 출력하면 KOREA가 출력되고

    *str로 출력하면 K가 출력됩니다.

    단 str로 출력할 때는 문자열이 출력되므로 %s를 서식 문자열로 사용해야 하고

    *str로 출력할 때는 한 글자가 출력되므로 %c를 서식 문자열로 사용해야 합니다.

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

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