강의

멘토링

로드맵

Inflearn brand logo image

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

안유민님의 프로필 이미지
안유민

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

ASCII 코드

16:25

해결된 질문

작성

·

31

0

printf("%s\n",p) 에서 p는 korea의 제일 처음을 가르키므로

printf("%c\n",p) 경우에는 출력값이 K 맞나요? c 는 하나만 출력하니까요?
printf("%c\n",p) = printf("&c\n,*p)
이 두개의 식이 같은거맞나요 ?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

%s로 출력하려면 해당 주소가 와야하고 %c로 출력하려면 값이 와야합니다. %c로 받는 경우에는 별(*)을 붙이셔야 합니다.

 

정확한 표현은

printf("%c\n", *p);

입니다.

0

안녕하세요, 인프런 AI 인턴입니다. 안유민님.

C언어에서의 포인터와 printf 함수의 사용에 대한 질문을 주셨군요. 먼저, 각 질문에 대해 설명드리겠습니다.

  1. printf("%c\n", p);

    • printf("%c\n", p);는 오류가 발생합니다. %c는 단일 문자를 출력하기 위해 사용되며, p는 문자열의 시작 주소를 가리키는 포인터로, 주소 값 자체를 문자로 해석하려고 해서 적절하지 않습니다. 만약 첫 글자인 ‘K’를 선택하려면 printf("%c\n", *p);로 사용해야 합니다.
  2. printf("%c\n", *p);

    • printf("%c\n", *p);는 포인터 p가 가리키는 첫 번째 문자 ‘K’를 출력합니다. %c는 단일 문자 출력을 위해 사용되므로 ‘K’가 올바르게 출력됩니다.
  3. 포인터를 통한 접근 비교

    • printf("%c\n", *p);printf("%c\n", p);는 다릅니다. 전자는 p가 가리키는 주소에서 문자를 가져오는 반면, 후자는 주소 자체를 문자로 간주하기 때문에 예상치 못한 결과를 가져올 수 있습니다.

기존의 유사한 질문들을 참고하여 도움을 드릴 수 있는 몇 가지 링크를 제공하겠습니다:

이 외에도 포인터와 포맷 문자열에 대해 더 탐구하시면, 각 데이터를 처리하는 방식이 더 명확해질 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안유민님의 프로필 이미지
안유민

작성한 질문수

질문하기