자료형이란 무엇인가?
전시간에 간략하게 설명 드렸는데 오늘은 자세히 자료형에 대해 알아볼께요. 우선 자료형이 무얼 뜻하는지 개념을 잡아야할거 같아요. 현실세계에서 쓰는 언어나, data는 컴퓨터가 인식을 하지 못하는건 다들 알고계시죠? 컴퓨터는 0,1밖에 모르는 바보인데 우리가 쓰는 언어를 컴퓨터가 인식하도록 번역해주는것이 '컴파일'이라고 전에 설명드렸어요. 그런데 컴파일할때 코드가 규칙대로 짜여져 있지않고 지 맘데로 짜여져 있다면? 컴파일 오류가 나고 그럼 당연히 컴퓨터가 전혀 알아볼수 없게되요. 그래서 코드를짤때 일정한 규칙을 정하였는데 바로 그 규칙이 바로 자료형이라고 해요. 즉 data간에도 여러가지 Type이 있다는걸 뜻해요. 좀더 쉽게 설명드리자면 변수가 저장할 테이터가 정수인지 실수인지, 아니면 문자형인지 미리 지정해주는거라고 이해하시면 되요.
자료형의 종류는?
C언어는 매우 풍부한 자료형을 가지고 있는데요, 각각의 자료형은 메모리를 차지하는 바이트(크기)가 다르기 때문에 표현할수 있는 범위도 달라요. 그럼 어떠한 자료형들이 있는지 아래 표를 보며 설명드릴께요.
기본형 |
문자형 |
char |
unsigned char | ||
정수형 | short | |
unsigned short | ||
int | ||
unsigned int | ||
long |
||
unsigned |
||
실수형 | float | |
double | ||
void형 |
void |
|
기타형 |
배열, 구조체(struct), 공용체(union), 열거형(enum), 포인터형 |
위 표처럼 크게 기본형과 기타형으로 나뉘는데 기본형에는 문자형, 정수형, 실수형, void형으로 구분되고, 기타형에는 배열,구조체,공용체,열거형,포인터형으로 다시 나뉩니다. 기타형은 나중에 다시 배울꺼니까 우선 제쳐둡니다. 기본형을 하나하나 설명드리자면
- 문자형 : 말그대로 문자를 나타낼때 쓰는 자료형 입니다.
- 정수형 : 20 , -15 이처럼 소수점이 아니 정수로 나타낼때 쓰는 자료형입니다.
- 실수형 : 3.14와 같이 소수점으로 나타낼때 쓰는 자료형입니다.
- void형 : 반환값이 없을때 쓰는 자료형입니다.
자료형의 크기 및 표현가능한 수의 범위는?
위에서 언급하였듯이 자료형은 메모리를 차지하는 크기가 다른데요 크기와 표현가능한 수의 범위에 대해 알아볼께요. 컴퓨터 내부에 수를 저장하는 방식은 정수형은 고정소수점 방식, 실수형은 부동 소수점 방식으로 저장됩니다. 아래 표는 한눈에 보기 편하게 자료형별로 종류와 크기, 표현 가능한 수의 범위의 표입니다. 참고하세요~
자료형 |
자료형 종류 |
기억공간 크기 |
표현가능한 수의 범위 |
문자형 |
char |
1 byte |
-128 ~ +127 |
unsigned |
1 byte |
0 ~ +255 |
|
정수형 |
int |
2 or 4 byte |
-32768 ~ +32767 (2 byte 경우) |
unsigned int |
2 or 4 byte |
0 ~ +65535(2 byte 경우) |
|
short |
2 byte |
-32768 ~ +32767 |
|
unsigned short |
2 byte |
0 ~ +65535 |
|
long |
4 byte |
-2147483648 ~ +2147483647 |
|
unsigned long |
4 byte |
0 ~ +4294967295 |
|
실수형 |
float |
4 byte |
3.4 X 10^-38 ~ 3.4 X 10^+38 |
double |
8 byte |
1.7 X 10^-308 ~ 1.7 X 10^+308 |
고정 소수점 , 부동 소수점, 그럼 문자형은?
- 고정소수점(Fixed Point)방식?
정수를 표현하기 위한 방식이며 소수점의 위치가 가장 오른쪽 비트의 바로 오른쪽에 고정되어 있다고 생각하는 방식으로 부호와 크기를 따로 표현한다.
- 부동소수점(floating Point) 방식?
- 문자형 표현?
컴퓨터는 누차 말씀드렸듯이 0과 1밖에 모르는 바보라 문자를 인식하지 못해요.그래서 나온것이 아스키 코드 (American Standard Code for Information Interchange) 즉, ASCII라고 해요 각각의 문자를 고유의 번호를 부여하여 컴퓨터가 인식할수 있어요.
글을 마치며..
오늘 배운 자료형의 종류와 특징들은 차후 코드를 짜면서 더욱더 상세히 설명드릴꺼에요. 오늘은 그냥 "아~ 이런게 있구나" 정도로만 알고계시면 되요. 처음 C언어를 접하시는 초보분들은 아무리 자세히 설명드려도 이해가 쉽지 않기때문에 나눠서 설명드릴께요~
'잡동사니 > C언어 Study' 카테고리의 다른 글
C언어의 함수에 대해 자세히 알아보자! (0) | 2015.04.16 |
---|---|
당신의 연봉을 C언어로 프로그래밍해보자 (예제1) (1) | 2015.04.08 |
C언어에서 줄바꿈과 주석에대해 알아보자!! (0) | 2015.04.05 |