c언어 printf 질문입니다.
허리달
2023.04.01
#include stdio.h
int main(void)
{
char str[20]={김광현};
char *ptr=str;
printf(%s \n,*ptr);
return 0;
}
#include stdio.h
int main(void)
{
char str[20]={김광현};
char *ptr=str;
printf(%s \n,ptr);
return 0;
}
ptr(주소값)은 정상적으로 출력이 되는데 왜 *ptr로 한 것은 오류가 날까여???
예를 들면 printf(%d ,num1); 이렇게하면 정상인데pritnf(%d ,&num1); 이렇게 하면 오류나잖아요??
왜 이 경우와는 달리 ptr로 해야 출력이 정상적으로 될까여?????
-
다솜
감사합니다 주소값을 넘겨주는 지정자엿군요
-
울트라
*ptr 은 메모리 주소가 아니잖아요. %s 를 쓰시려면 char 가 저장된 메모리의 주소를 전달해줘야 합니다.
*ptr 은 char 메모리를 나타냅니다 주소가 아니고... -
한국녀
%c : 문자 1개를 출력하는 포맷
%s : 문자열을 출력하는 포맷(문자열의 시작주소를 넘겨줘야...), 즉 주소값을 넘겨줘야 하는 지정자 입니다.
*ptr 은 문자 1개를 가리키지요~
처음 예제를 이렇게 해보세요. 그럼, 무슨 의미인지 알게 될 겁니다.
printf(\%s \\n\