자료형
C언어에서 자료형(data type)은 프로그래밍 언어에서 자료를 식별하는 종류를 의미한다
자료형은 크게 기본형(basic types), 유도형(derived types), 사용자 정의형(user defined types)으로 나뉜다.
(간혹 기본형, 유도형, 사용자정의형의 구분방법 대신 기본형과 파생형(유도형, 사용자정의형)으로 구분하기도 한다.
기본자료형은 정수형(short, int, long), 실수형은(float, double), 문자형(char), 무치형(void)로 구분할 수 있고,
유도형은 기본형에서 나온 자료형으로 배열(array), 포인터(pointer), 함수(function) 등으로 구성된다. 사용자정의형은 기본형과 유도형을 이용하여 프로그래머가 다시 만드는 자료형으로 열거형(enumeration), 구조체(structure), 공용체(union) 등이 있다.
정수자료형(integer types)
정수자료형의 종류
C언어는 정수형 키워드로 short, int, long의 세 가지를 제공하는데, 저장공간의 크기로 보면 일반적으로는 두 가지 종류를 제공한다.
정수형의 기본 키워드는 int이다. int로 선언된 변수에는 10진수, 8진수, 16진수의 정수가 다양하게 저장이 가능하다.
short와 long은 int에서 파생된 자료형으로 short는 int보다 작거나 같은 범위의 값을, long은 int보다 크거나 같은 범위의 값을 저장한다.
short는 short int, long은 long int라고도 하며 int는 생략가능하다.
즉, 정수 자료형은 다양한 범위의 정수를 저장하기 위해 존재하고, 크기나 사용범위에 따라 적절한 자료형을 선택해야한다.
signed, unsigned
signed자료형
signed는 "부호가 있는"을 의미하는 키워드로 정수자료형 키워드 앞에 표시할 수 있고 양수, 음수, 0을 표현할 수 있다.
signed는 int처럼 생략할 수 있다.
즉,
- signed short int = short int = int
- signed int = int = signed
- signed long int = long int = int
unsigned자료형
unsigned는 0과 양수만을 나타내며, unsigned int는 int만 생략가능하다.
- unsigned short int = unsigned short
- unsigned int = unsigned
- unsigned long int = unsigned long
정수자료형의 표현 범위, 저장공간
음수지원 여부 | 자료형 | (저장공간)크기 | 표현범위 |
signed (음수지원X, 부호O) |
signed short | 2바이트 | -2^25 ~ 2^15-1 |
signed int | 4바이트 | -2^31 ~ 2^31-1 | |
singed long | 4바이트 | -2^31 ~ 2^31-1 | |
unsigned (음수지원X, 부호X) |
unsigned short | 2바이트 | 0 ~ 2^16-1 |
unsigned int | 4바이트 | 0 ~ 2^32-1 | |
unsigned long | 4바이트 | 0 ~ 2^32-1 |
부동소수 자료형
보동소수 자료형(float point number data type)는 float, long, double의 세 가지 키워드를 사용한다.
double형은float보다 표현범위가 같거나 정확하고, long double형은 double보다 표현범위가 같거나 정확해야한다.
일반적으로 소수 표현은 double로 인식하기 때문에, float에 저장하여면 3.124F 처럼 float형 상수로 저장한다.
부동소수 자료형의 표현 범위, 저장공간
자료형 | 크기 | 정수의 유효자릿수 | 표현범위 |
float | 4 바이트 | 6-7 | 1.175494351E - 38F ~ 3.402823466E + 38F |
double | 8 바이트 | 15-16 | 2.2250738585072014E - 308 ~ 1.79769313486231E + 308 |
long double | 8 바이트 | 15-16 | 2.2250738585072014E - 308 ~ 1.79769313486231E + 308 |
문자형 자료형
char
문자형 자료형은 char, signed char, unsigned char의 세 가지 종류가 있다. char는 character(문자)의 약자이고, 저장공간의 크기는 모두 1바이트이다.
signed char와 unsigned char는 short보다 작은 범주의 정수 자료형으로 이용한다
C언어에서 문자형 자료공간에 저장되는 값은 실제로 정수 값이고, 이 정수는 아스키코드에 따른 값이다.
따라서 char는 문자상수를 이용하거나, 정수를 직접 저장할 수 있다.
또한 문자코드 값을 세 자리의 8진수나 두 자리의 16진수로 표현할 수 있고, 한글 문자를 저장할 수는 없다.
자료형 | 저장공간크기 | 표현범위 |
char | 1 바이트 | -128 ~ 127(문자는 실제 0에서 127까지 이용) |
signed char | 1 바이트 | -128 ~ 127 |
unsigned char | 1 바이트 | 0에서 255까지 |
아스키코드
앞서 언급한 아스키코드에 대해 알아보자
아스키코드(ASCII: American Standard Code for Information)는 ANSI에서 제정한 정보 교환용 표준 코드로 총 127개의 문자로 구성된다
0번 - 31번, 127번 문자 => 인쇄할 수 없는 문자(Nonprinting Characters)
32번 - 126번 문자 => 인쇄문자(printing characters)
자료형의 크기
자료형의 크기
정수자료형
음수지원 여부 | 자료형 | (저장공간)크기 | 표현범위 |
signed (음수지원X, 부호O) |
signed short | 2바이트 | -2^25 ~ 2^15-1 |
signed int | 4바이트 | -2^31 ~ 2^31-1 | |
singed long | 4바이트 | -2^31 ~ 2^31-1 | |
unsigned (음수지원X, 부호X) |
unsigned short | 2바이트 | 0 ~ 2^16-1 |
unsigned int | 4바이트 | 0 ~ 2^32-1 | |
unsigned long | 4바이트 | 0 ~ 2^32-1 |
부동소수형
자료형 | 크기 | 정수의 유효자릿수 | 표현범위 |
float | 4 바이트 | 6-7 | 1.175494351E - 38F ~ 3.402823466E + 38F |
double | 8 바이트 | 15-16 | 2.2250738585072014E - 308 ~ 1.79769313486231E + 308 |
long double | 8 바이트 | 15-16 | 2.2250738585072014E - 308 ~ 1.79769313486231E + 308 |
문자자료형
자료형 | 저장공간크기 | 표현범위 |
char | 1 바이트 | -128 ~ 127(문자는 실제 0에서 127까지 이용) |
signed char | 1 바이트 | -128 ~ 127 |
unsigned char | 1 바이트 | 0에서 255까지 |
자료형의 크기 구하기
연산자 size of를 이용해 자료형, 변수, 상수의 저장공간 크기를 알 수있다(바이트 단위로!)
sizeof(int) //sizeof(자료형 키워드), 괄호 필수
sizeof 3.99 //sizeof 상수, sizeof(상수)
sizeof var //sizeof 변수, sizeof(변수)
'일상 > 공부' 카테고리의 다른 글
[ C언어 ] 상수(리터럴 상수, 심볼릭 상수) (0) | 2024.01.22 |
---|---|
[ ME ] 환전사이트 웹개발 백엔드 포트폴리오 (0) | 2024.01.19 |
[ C언어 ] 변수, 변수선언, 변수초기화 (0) | 2024.01.17 |
[ Java ] 자바기초 - 용어정리, 출력, 단축키 (0) | 2024.01.16 |
[ C언어 ] C언어 토큰 - 키워드, 식별자 (0) | 2024.01.12 |