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

최원준141124님의 프로필 이미지
최원준141124

작성한 질문수

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

4.9 printf() 함수가 인자들을 해석하는 과정

변환지정자 %c

작성

·

209

1

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

int A=65;

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

대문자 A가 나왔는데요.

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

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

 

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

답변 1

0

안녕하세요 :)

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

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

 

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

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

 

감사합니다.

최원준141124님의 프로필 이미지
최원준141124

작성한 질문수

질문하기