본문 바로가기
OLD/[C]개념정리

[개탱][C][1.Data Type & 데이터 타입]

by 개탱 2017. 12. 21.
728x90

구분

TYPE

설명 

기본형

정수형

 소수점이 없는 정수들로만 이루어진 숫자 타입

문자형

 단 하나의 문자만을 표현하는 문자 타입

실수형

 소수점을 가질 수 있는 숫자 타입

void형 

 타입이 정해지지 않은 자료형

유도형

열거형

 상수명이 놓여진 형의 값을 나타내는 것

배열

 동일한 자료형의 연속된 메모리의 집합

구조체

 서로 밀접한 연관이 있는 Data들을 묶어놓은 틀

공용체

 다른 타입의 Data를 하나의 메모리 공간으로 사용하는 타입

포인터

 어떠한 대상의 주소를 가리키는 타입

함수형

 함수의 주소를 가리키는 타입



정수형 (short, int, long . . .)

자료형

Data 크기 (Byte)

표현 범위 

예시

부호 O

short int

2

 -32768 ~ 32767

1
2
3
4
5
6
short int a = 10;
int b = 20;
long c = 30;
unsigned short d = 40;
unsigned int e = 50;
unsigned long f = 60;
cs

int

4

 -2147483648 ~ 2147483647

(long) long int

 4~

 -2147483648 ~ 2147483647

부호 X

unsigned short

2

 0 ~ 65535

unsigned int

4

 0 ~ 4294967295

unsigned long

4

 0 ~ 4294967295

  • 정수를 저장하는 Data 크기에 맞춰 short, int, long으로 나누어진다.
  • int형 앞에 다른 형이 있는 경우 int는 생략할 수 있다.(long int -> long)
  • unsigned를 붙이게 되면 양의 정수형이 되며, 붙이이 않는다면 기본적으로 signed로 부호를 가질 수 있게된다.
  • 정수형에도 8진수와 16진수가 존재
    - 8진수 -> 숫자 앞에 0을 붙임 ( int a = 012; )
    - 10진수 -> 8진수와 16진수를 제외한 모든 표기법은 10진수이다.
    - 16진수 -> 앞이 0x로 시작 ( int a = 0xa; )(여기서 a는 16진수로 10을 의미)
  • 시스템 & 컴파일러에 따라 Data의 표현범위는 달라질 수 있으며 Data의 크기역시 변경될 수 있다.

문자형 (char)

자료형

Data 크기 (Byte)

 표현 범위

 예시

 char

 1

 -128 ~ 127

1
char a = 'A';
cs
  • 하나의 문자를 표현&저장하는 Data Type (1 Byte)
  • C에서는 문자를 저장하기 위한 타입은 없다.
    char형은 ASCII CODE의 코드를 저장하는 1바이트의 공간이며 이를 문자로 변환하여 나타낼 뿐이다.
  • http://gaetaeng.tistory.com/3

  •  Escape Sequences(이스케이프 시퀀스)
    역슬래쉬(\), 영문자 or 숫자들로 이루어진 조합을 뜻하며 이 같은 경우에는 따로 출력이 불가능하다.
    본 스터디에서는 따로 언급하지 않을 예정이며 나중에 블로그에 따로 올리도록 하겠다.
 
실수형 (float, double . . .)

자료형

Data 크기 (Byte)

소수점 자리수

 표현 범위 ( ^ -> 승수 )

 float

4

 6자리

3.4*10^-37 ~ 3.4*10^38

 double

8

 15자리

1.7*10^-307 ~ 1.7*10^308

 long double

8 ~

  15자리 ~

1.2*10^-4391 ~ 3.4*10^4392


  예시

1
2
3
float a = 3.4;
double b = 5.6;
long double c = 7.8;
cs
  • 지수와 가수로 나누어 저장하는 방식
  • 표현할수 있는 수의 범위가 높다.
  • 2진수로 이루어진 컴퓨터로 인한 오차가 존재한다. ( 소수점 자리표현 범위가 길면 길수록 더욱 정밀도가 높다 )
  • 시스템 & 컴파일러에 따라 Data의 표현범위는 달라질 수 있으며 Data의 크기역시 변경될 수 있다.


void형 (void)

자료형

Data 크기 (Byte)

 표현 범위

 void

-

 -


  예시

1
2
3
void *a;
int b;
= &b;
cs
  • 타입이 정해져있지 않다.
  • 보통 형변환(casting)과 *(pointer)를 사용하여 다른 타입을 가르키게 하는데 사용한다


댓글