강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

나그네님의 프로필 이미지
나그네

작성한 질문수

홍정모의 따라하며 배우는 C++

6.18 2분 47초

작성

·

135

1

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

답변 1

1

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

 

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

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

나그네님의 프로필 이미지
나그네

작성한 질문수

질문하기