자료형

정의

  • 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