본문 바로가기
IT/C

c언어 자료형

by -_-* 2020. 12. 31.
반응형

안녕하세요. 이미보라입니다:) 

지난 포스팅에서 우리는 C언어의 상수와 변수, 식별자와 예약어를 살펴보았습니다. 

 

 

 

오늘은 C언어의 자료형에 대하여 살펴보겠습니다. 

 

 

우리는 프로그램을 작성할 때 자료, 즉 데이터를 이용할 수 있습니다. 이러한 데이터는 프로그램에서 활용되기 위하여 그 값이 메모리에 저장해뒀다가 우리가 필요할 때 꺼내어 쓸 수 있는데요. 이때 메모리에서 얼마나 공간을 차지할 지를 결정하는 것이 이 자료형입니다. 자료형(데이터타입) 을 알아야 하는 이유는 조금 더 메모리 공간을 효율적으로 사용하기 위해서이고 자료형을 적절하게 사용한다면 프로그램 자체의 성능에도 영향을 줄 수 있습니다. 

 

C언어의 자료형에는 크게 정수형, 실수형, 문자형을 지원합니다. 

 

정수형 

자료형

의미

int/long / long int

4바이트 (32bit)

-2,147,183,648 (-231) ~2,147,483,647(231-1)

unsigned / unsigned int

unsigned long / unsigned long int

4바이트
0 ~ 4,294,967,295(232-1)

short / short int

2바이트(=16bit)

-32,768(-215) ~ 32,767(215-1)

unsigned short/ unsigned short int

2바이트(16bit)

0~65,535(216-1)

정수형은 데이터의 값이 -1, 0, 1, 2 , ... 와 같이 정수일 때 사용할 수 있는 자료형입니다. 가장 많이 사용되는 자료형은 int (integer의 약자) 형이고, unsigned int는 부호를 포함하지 않는 정수형을 말합니다. int형은 4byte의 공간을 할당합니다. 

 

 

실수형 

자료형

의미

double

8바이트 (64bit)

유효자리 15자리

지수범위 -308~ 308

float

4바이트
유효자리 6자리

지수범위 -38~38

실수형의 경우 데이터의 값이 0.1, -3.2 와 같이 소수점 아래의 수 까지의 표기가 가능한 자료형입니다. 

float형은 4byte, double은 8byte의 공간을 할당합니다. 두 자료형의 차이는 소수점 아래의 유효자리가 어디까지인가에 있습니다. float의 경우 소수점 아래 6자리, double형의 경우 소수점 아래 15자리까지 유효자리 수로 데이터를 기록할 수 있습니다. 

 

문자형 

자료형

의미

char

1바이트(8bit)

문자형은 데이터의 값이 문자에 해당될 때 사용할 수 있으며, 1byte의 공간을 할당하여 데이터를 저장합니다. 

 

 

 

자료형의 크기 예제 코드

#include <stdio.h>
  
int main (void)
{
int variable =0;

printf("변수 variable의 크기 : %d \n" , sizeof(variable));
printf("char형의 크기 : %d \n", sizeof(char));
printf("int형의 크기 : %d \n", sizeof(int));
printf("short형의 크기: %d \n", sizeof(short));
printf("long형의 크기 : %d \n", sizeof(long));
printf("float형의 크기: %d \n", sizeof(float));
printf("double형의 크기: %d \n", sizeof(double));

return 0;
}

자료형의 크기 예제 코드 결과

 

위의 예제 코드를 실행하면 각 변수가 가지는 메모리상의 크기를 확인할 수 있습니다. 

변수 variable은 int 형으로 선언되었음으로 4byte의 크기를 가지고 있습니다. 

그 외의 char 형은 1byte, short 형은 2byte, long형은 8byte , float형은 4byte, double형은 8byte의 크기를 가집니다. 

 

참고로 위의 코드에서 printf() 괄호내의 내용을 출력해주는 역할을 합니다. 그리고 %d 는 정수를 출력하는데 필요한 형식지정자입니다. 이에 관련된 자세한 내용은 다음 포스트에서 다루도록 하겠습니다. 감사합니다. 

 

반응형

'IT > C' 카테고리의 다른 글

C언어 조건문  (0) 2021.01.10
C언어 연산자2  (0) 2021.01.02
C언어 연산자 1  (0) 2021.01.01
C언어 표준입출력  (0) 2020.12.31
C언어 변수와 상수  (0) 2020.12.30

댓글