• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

6.18 2분 47초

23.12.24 01:49 작성 조회수 69

1

안녕하세요? 혹시 여기서 왜 C의 주소를 출력했는데 이상하게 나오고(한자 같은 게 나오고), 나머지 float는 문제없이 출력되는지 궁금합니다ㅠㅠ

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2023.12.24

안녕하세요, 답변 도우미 Soobak 입니다.

 

ptr 포인터가 char 자료형의 변수 c 의 주소를 가리키고 있기 때문입니다.
C++ 언어에서 char 포인터는 문자열을 가리키는 것으로 간주되어, 포인터가 가리키는 주소부터 널 문자 ('\0')가 나올 때까지의 문자들을 출력합니다. (포인터와 배열의 관계를 생각해보시면 이해에 도움이 되실 것 같습니다.)

하지만, 해당 코드에서 ptr 은 단일 char 변수 c 의 주소를 가리키고 있고, c 뒤에 널 문자가 없기 때문에, 메모리에서 c 의 위치부터 시작하여 임의의 데이터(쓰레기 값)가 널 문자를 만날 때까지 출력되어, 예상치 못한 문자가 출력되는 것입니다.