작성
·
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바이트만 읽어내겠다"는 의미가 아니라
"데이터를 문자로서 간주하고 읽어내겠다"는 의미입니다.
물론 데이터를 특정 자료형으로 간주하고 읽어낼 수 없는 경우에는 문제를 일으키지만,
형식 지정자 자체가 몇 바이트를 읽어낼지는 내포하지 않지요.
감사합니다.