• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

변환지정자 %c

22.03.20 15:16 작성 조회수 160

1

그동안 아무 생각 없다가도 복습을 하니 또 궁금한 점이 생겨 여쭤봅니다..

int A=65;

printf("%c",  A);를 시행하니

대문자 A가 나왔는데요.

갑자기 데이터의 사이즈를 생각하니 이게 가능한 일인가 싶어 여쭤봅니다..

%c는 char 데이터를 읽어내는 변환지정자로 유명하고 char는 1바이트의 크기를 갖는데 어떻게 같은 %c변환지정자인데 integer를 읽어내는데 쓰일 수 있는건지 궁금합니다..

 

공부해보니 printf문에서 float는 double로 자동으로 승격이 되기 때문에 %f로 float와 double 모두 출력이 가능한데 이거랑 같은 원리인가요????????

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.03.21

안녕하세요 :)

%c는 "데이터를 1바이트만 읽어내겠다"는 의미가 아니라

"데이터를 문자로서 간주하고 읽어내겠다"는 의미입니다.

 

물론 데이터를 특정 자료형으로 간주하고 읽어낼 수 없는 경우에는 문제를 일으키지만,

형식 지정자 자체가 몇 바이트를 읽어낼지는 내포하지 않지요.

 

감사합니다.