p.83의 기출 따라잡기 중 문제1번입니다.
#include
main()
{
char *str; ------①
str = "KOREA"; ------②
printf("%8.3/n", str); -----③
}
①에서 str은 포인터 변수임을 선언하고
②에서 str에 저장된 값은 "KOREA"가 아니라 "KOREA"가 저장된 주소의 값인데
③에서 출력되는 것이 "KOR"이면 str이 아니라 *str이 아닌가 하는 생각이 들어 질문 올립니다.
안녕하세요.
문자열의 경우 배열처럼 처리되므로 포인터를 사용하지 않고 변수명만 작성하면 해당 문자열이 저장된 위치의 시작 부분을 인식하여 자동으로 전체 값을 반환합니다. 하지만 개별적인 위치의 값을 반환하려고 할 때는 포인터를 사용하여 개별적인 위치를 지정해 주어야 합니다.
*str[0] 첫 번째 값 "K"
*str[1] 첫 번째 값 "O"
*str[2] 첫 번째 값 "R"
*str[3] 첫 번째 값 "E"
*str[4] 첫 번째 값 "A"
와 같이 구분됩니다.
str을 하면 "KOREA" 전체가 반환됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-09-26 09:31:52
안녕하세요.
문자열의 경우 배열처럼 처리되므로 포인터를 사용하지 않고 변수명만 작성하면 해당 문자열이 저장된 위치의 시작 부분을 인식하여 자동으로 전체 값을 반환합니다. 하지만 개별적인 위치의 값을 반환하려고 할 때는 포인터를 사용하여 개별적인 위치를 지정해 주어야 합니다.
*str[0] 첫 번째 값 "K"
*str[1] 첫 번째 값 "O"
*str[2] 첫 번째 값 "R"
*str[3] 첫 번째 값 "E"
*str[4] 첫 번째 값 "A"
와 같이 구분됩니다.str을 하면 "KOREA" 전체가 반환됩니다.
오늘도 즐거운 하루 되세요.