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

지현근님의 프로필 이미지
지현근

작성한 질문수

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

(기출) 2023년 2회 코드해석 문제

(기출)2023년 2회 코드해석 문제 강의 중 질문사항 있습니다.

해결된 질문

작성

·

94

0

14분 58초 홍길동, 김철수, 박영희 순으로 입력값이 주어질 때 다음 코드의 출력값은 무엇인가?

위 문제에서 printf("%c\n", test1); 의 출력값을 구하라고 한다면 그래도 결과는 박영희가 맞는건가요? 박 이 될수도 있겠다는 생각에 질문드립니다.

답변 2

0

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

정상적으로 출력 안됩니다.

 

%c로 하려면 일단 뒤의 test1 앞에 별을 붙여야 합니다.

%s는 주소값을 받지만 %c는 특정 값을 받아야 합니다.

 

한글의 경우 정상적으로 출력이 안될 수 있습니다.

"한글"이라는 언어 인코딩 특이성 때문에 그런데 깊게 알 필요는 없습니다.

 

영어 기준으로, 만약 "park"가 들어가있다면 p를 출력합니다.

첫 번째를 가리키고 있는 주소의 값을 가져와서 %c로 출력하기 때문입니다.

 

#include <stdio.h>

int main() {
    char *name = "Park";
    printf("%c\n", *name);

    return 0;
}

출력값: P

지현근님의 프로필 이미지
지현근
질문자

감사합니다:)

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

늦은 시각에 고생 많으십니다. 화이팅입니다.

0

안녕하세요, 인프런 AI 인턴입니다. 지현근님.

질문하신 문제는 printf(“%c\n”, test1);의 출력값에 대해 궁금해하신 것으로 보입니다. 이를 이해하기 위해서는 test1 변수에 정확히 어떤 값이 저장되어 있는지를 파악하는 것이 중요합니다.

  1. printf("%c\n", test1); 는 test1에 저장된 문자 하나를 출력합니다. 만약 test1에 문자열의 첫 글자인 ‘박’이 저장되어 있다면, 출력값은 ‘박’이 될 것입니다.

비슷한 주제를 다룬 기존 게시물들을 참고하시면 더 명확한 이해를 도울 수 있을 것 같습니다:

결국 test1의 값이 무엇으로 지정되었는지 코드 전반에 대한 이해에 따라 출력 결과가 결정됩니다.

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

지현근님의 프로필 이미지
지현근

작성한 질문수

질문하기