여러분 안녕하세요. 세이버입니다.
여러분들은 저번 강을 끝으로 조건문과 반복문을 배우셨습니다.
조건문과 반복문을 알고 계시면 대부분의 코드를 작성하실 수 있습니다.
이번 강에서는 여러분들의 프로그래밍 실력 향상을 위해 자료형을 소개해보려 합니다.
1. 자료형이란 무엇인가
자료형(data type)이란 자료의 형태를 의미합니다.
15, SAVER, 프로그래밍, 16.2
위 단어들을 봤을 때 여러분들은 뭐가 숫자이고 뭐가 문자인지 구분하실 수 있으신가요??
아마 이 강의 글을 보시는 분들은 모두 구분하실 수 있으실 거라고 생각합니다.
그러나 아쉽게도 컴퓨터는 뭐가 숫자이고 뭐가 문자인지 스스로 구분할 수 없습니다.
컴퓨터가 구분하려면 프로그래머가 자료의 형태를 지정해줘야 합니다.
int a;
char b;
이런 식으로 변수 앞에 자료형을 붙여줌으로써 변수의 자료의 형태를 알려줘야 컴퓨터가 구분할 수 있습니다.
자료형은 크게 정수형과 실수형으로 구분됩니다.
더 세밀하게 나열하면 정수형은 char, short, int, long으로 나뉘고,
실수형은 float, double, long double로 나뉩니다.
위 그림을 보시면 쉽게 이해하실 수 있으실 겁니다.
위 그림을 보신 여러분들은 한 가지 의문점이 생길 겁니다.
도대체 왜 이렇게 자료형들이 많이 있는 걸까요???
간단하게 정수형 하나, 실수형 하나만 있으면 안 되는 걸까요??
저도 그랬으면 좋겠지만 다양한 이유들로 인해 자료형의 수가 많이 필요하여 자료형이 다양해지게 된 겁니다.
2. 자료형이 많은 이유 1_자료형의 크기
자료형이 다양한 이유 중 하나는 메모리의 공간에 따라 필요한 자료형들이 다르기 때문입니다.
실무에서의 프로그래밍은 메모리의 크기에 맞도록 프로그래밍을 작성하는 것이 중요합니다.
즉, 1바이트의 공간이라도 줄이는 것이 프로그래머의 능력이죠.
여러분들이 10MB의 용량을 초과하지 않는 프로그램을 작성한다고 할 때,
용량을 조절할 수 있는 가장 쉬운 방법은 변수의 자료형의 크기를 조절하는 것입니다.
간단한 값, 크기가 작은 값을 굳이 크기가 큰 자료형에 담는 일이 없어야 한다는 것입니다.
그래서 다양한 크기를 가진 자료형들이 필요하게 되었고, 그 결과 다양한 크기를 가진 자료형들이 생겨났습니다.
자료형들의 크기는 sizeof 함수를 이용해서 확인할 수 있습니다.
sizeof 함수 사용법
sizeof(크기를 확인할 변수명 or 자료형)
실습으로 보여드리겠습니다.
※ 위 코드의 결과값은 컴퓨터의 비트수에 따라 달라질 수 있습니다.
자료형들은 각각의 크기를 가지고 있으므로 필요한 공간에 맞게 사용하는 것이 좋습니다.
3. 자료형이 많은 이유 2_표현 범위의 다양성
자료형의 크기가 다양할수록 표현 범위 또한 다양해지게 됩니다.
자료형의 크기가 클수록 표현 범위가 넓어지고, 작을수록 표현 범위도 좁아지게 됩니다.
표현 범위의 최대, 최소를 넘게 되면 이상한 결과값을 계산하므로 표현 범위에 맞는 자료형을 사용하는 것이 좋습니다.
이번 강은 여기서 마치겠습니다.
다음 강에서는 자료형 중 정수형에 대해서 집중적으로 다뤄보도록 하겠습니다.
오늘도 수고하셨습니다.
정리
- 자료형 : 자료의 형태
- 자료형은 정수형, 실수형으로 나뉜다.
- 정수형 : char, short, int, long
- 실수형 : float, double, long double
- 자료형이 다양한 이유 : 1. 다양한 메모리 크기 2. 표현 범위의 다양성
강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.
궁금하신 점이나 질문은 댓글이나 메일을 남겨주세요.
'C언어' 카테고리의 다른 글
세이버의 C언어 강의 18강_ 자료형이란 무엇인가 Part3_실수형 (0) | 2019.04.21 |
---|---|
세이버의 C언어 강의 17강_ 자료형이란 무엇인가 Part2_정수형 (0) | 2019.04.15 |
세이버의 C언어 강의 15강_반목문이란 무엇인가 Part 3 (do while 함수와 break+continue) (0) | 2019.03.16 |
세이버의 C언어 강의 14강_반목문이란 무엇인가 Part 2 (while 함수) (0) | 2019.03.12 |
세이버의 C언어 강의 13강_반목문이란 무엇인가 Part 1 (for 함수) (0) | 2019.03.05 |