본문 바로가기

기초공부/C

[C]자료형과 printf, scanf 서식 정리

맨날 까먹어서 인터넷 뒤지길래 정리함
1. 자료형 정리

정수형char1바이트-128 이상 +127 이하
unsigned char0 이상 (128+127) 이하
short2바이트-32,768 이상 +32,767 이하
unsigned short0 이상 (32,768+32,767) 이하
int4바이트-2,147,483,648 이상 +2,147,483,647 이하
unsigned int0 이상 (2,147,483,648+2,147,483,647) 이하
long4바이트-2,147,483,648 이상 +2,147,483,647 이하
unsigned long0 이상 (2,147,483,648+2,147,483,647) 이하
long long4바이트-9,223,372,036,854,775,808 이상 +9,223,372,036,854,775,807 이하
unsigned long long0 이상 (9,223,372,036,854,775,808+9,223,372,036,854,775,807) 이하
실수형float4바이트±3.4*10^-37 이상 ±3.4*10^38 이하
double8바이트±1.7*10^-307 이상 ±1.7*10^308 이하
long double8바이트 이상double 이상의 표현 범위


2. 자료형에 해당하는 접미사를 붙이면 상수의 자료형이 바뀐다
→ 상수의 자료형을 바꾸면 다양한 자료형을 편히 사용할 수 있다. (대소문자 구별x)

접미사자료형예시
Uunsigned intunsigned int n = 1025U
Llonglong n = 2467L
ULunsigned longunsigned long n = 12345UL
LLlong longlong long n = 5678LL
ULLunsigned long longunsigned long long n = 8979ULL
Ffloatfloat f = 3.15F
Llong doublelong double = 5.6789L


3. printf 포맷

서식문자자료형출력 형태
%dchar, int부호 있는 10진수 정수
%hdshort부호 있는 10진수 정수
%ldlong부호 있는 10진수 정수
%lldlong long부호 있는 10진수 정수
%uunsigned int부호 없는 10진수 정수
%ounsigned int부호 없는 8진수 정수
%x, %Xunsigned int부호 없는 16진수 정수
%ffloat, double10진수 방식의 부동소수점 실수
%Lflong double10진수 방식의 부동소수점 실수
%e, %Efloat, doublee, E 방식의 부동소수점 실수
%g, %Gfloat, double값에 따라 %f와 %e 사이에서 선택
%cchar, short, int값에 대응하는 문자
%schar *문자열
%pvoid *포인터의 주소 값


4. scanf 포맷

서식문자자료형입력 형태
%dchar, int부호 있는 10진수 정수
%hdshort부호 있는 10진수 정수
%ldlong부호 있는 10진수 정수
%lldlong long부호 있는 10진수 정수
%uunsigned int부호 없는 10진수 정수
%ounsigned int부호 없는 8진수 정수
%x, %Xunsigned int부호 없는 16진수 정수
%f, %e, %gfloat10진수 방식의 부동소수점 실수
%lfdouble10진수 방식의 부동소수점 실수
%Lflong double10진수 방식의 부동소수점 실수


출처 : 윤성우 열혈 C 프로그래밍 + 자체적으로 수정