자료형

정의
- data type
- 컴퓨터에서 값의 표현 방법을 정의한 것
- 변수가 저장할 데이터의 종류와 크기를 정의하는 것
1
2
3
4
5
int a = 10;
// int : 자료형
// a : 변수
// 10 : 상수, 값
중요한 이유
자료형이 중요한 이유는, 프로그래밍에서 값을 저장하거나 계산할 때, 자료형을 엄격하게 구분하여 처리되기 때문이다.
자료형에 따라 담을 수 있는 데이터의 양이 달라진다.
- 변수를 선언할 때 자료형을 붙이는 것은 곧 그 변수가 사용할 메모리 공간의 크기를 결정한다.
- A 라는 자료형이 1~1000까지를 담을 수 있는데, 거기에 2000을 담는다면 의도와 다른 작업이 수행된다.
1
2
3
4
5
6
7
short int a = 40000;
printf("%d", a);
>> -25536
// short int는 65536 개의 값을 표현할 수 있다.
// 부호를 포함한 경우 - 32768 ~ 32767
// 여기에 40000을 담는다면, 문제가 발생한다.
자료형에 따라 연산의 방식이 달라진다.
- 같은 연산자라도, 자료형이 무엇이냐에 따라 C언어는 다른 연산을 한다.
1
2
3
4
5
6
7
8
9
int a = 10;
int b = 20;
printf("a + b = %d", a / b);
>> 0
float x = 10.0f;
float y = 20.0f;
printf("x + y = %f", x / y);
>> 0.500000
C 언어 자료형의 종류
기본형
| 구분 | 자료형 | 설명 | 크기 |
|---|---|---|---|
| 정수형 | short int | 작은 정수를 담는 자료형 0 ~ 65,535 -32,768 ~ 32,767 |
2 |
| int | 일반적인 정수를 담는 자료형 컴퓨터에서 가장 효율적으로 연산할 수 있는 크기를 가진다. |
2, 4, 8.. | |
| long int | 큰 정수를 담는 자료형 0 ~ 4,294,967,295 -2,147,483,648 ~ 2,147,483,647 |
4 | |
| long long int | 매우 큰 정수를 담는 자료형 0 ~ 18,466,744,073,709,551,615 (부호 있는 경우는 생략) |
8 | |
| 문자형 | char | 문자 하나를 담을 수 있는 자료형 0 ~ 255 -128 ~ 127 |
1 |
| 실수형 | float | 단정밀도 부동 소수점 형 메모리 사용량이 중요하고, 정밀도가 덜 중요한 경우 사용 1.175494e-38 ~ 3.402823e+38 |
4 |
| double | 배정밀도 부동 소수점 float 보다 더 정밀한 수를 표현할 때 사용 2.225074e-308 ~ 1.797693e+308 |
8 | |
| long double | 가장 큰 크기의 최고 정밀도 2.225074e-308, 1.797693e+308 |
8 |
열거형
- 나열된 단어를 값으로 사용하는 자료형
- 나열된 순서대로 0부터 시작하는 정수를 표현한다.
파생형
| 구분 | 자료형 | 설명 |
|---|---|---|
| 파생형 | 배열형 | 같은 종류의 데이터를 연속된 메모리 공간에 저장 |
| 구조체형 | 서로 다른 종류의 데이터를 하나의 논리적인 그룹으로 묶어 새로운 자료형을 정의 | |
| 공용체형 | 서로 다른 종류의 데이터를 멤버로 가지지만, 가장 큰 멤버의 메모리 공간을 공유하는 자료형 | |
| 포인터형 | 변수가 저장된 메모리의 주소 값을 저장하는 자료형 |
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments