본문 바로가기

C Langauage

Chapter 2. 데이터형, 변수, 상수

Chapter 2. 데이터형, 변수, 상수

1. 데이터형

 - 데이터형이란

  · 데이터의 형태를 구분하는 역할을 하고 데이터의 범위나 부호의 사용여부를 결정짓는다.

  · 데이터형에는 정수형, 실수형, 문자형이 있다.

  · 데이터형에는 기본 데이터형, 파생 데이터형, 사용자 정의형이 있다. 

 데이터의 유형

데이터형

 기본 데이터형

문자형

char

정수형

short

int

long

실수형

float

double

 파생 데이터형

배열

포인터

 사용자 정의형

구조체

공용체

열거체

    ※ 용량단위 

단위

설명 

Bit

용량의 최소 단위

 Nibble

 4bit(반바이트)

Byte

 8bit

Word

 4byte(32bit)

Kilo byte

1024 Byte

Mega byte

1024 Kilo Byte

Giga byte

1024 Mega Byte

Tera byte

1024 Giga Byte

 Peta byte

1024 Tera Byte

 Exa byte

1024 Peta Byte

 Zetta byte

1024 Exa Byte

 - 정수형

  · 정수를 사용하고 싶을 때 사용하는 변수 형으로 소수점이하가 있는 숫자는 표현할 수 없다.

  · unsigned를 사용할 수 있고 unsigned가 사용된 정수형 변수는 음수를 표현할 수 없다.

  · 정수형의 종류는 다음과 같다. 

데이터형

범위

unsigned 범위

 크기

 short

-32,768 ~ 32,767

0 ~ 65,535

2Byte

 int

-2,147,483,648 ~ 2,147,483,647

0 ~ 4,294,967,295

4Byte

 long

-2,147,483,648 ~ 2,147,483,647

0 ~ 4,294,967,295

4Byte

  · int 형의 크기는 정해져 있지 않고 32bit 환경일 경우 검파일러에 따라 2Byte 또는 4Byte일 수 있다.

  · short

   ◦ 2Byte 단위로 2진수 사용

   ◦ 2Byte = 16bit로 인해 범위는 2^16 = 65,536으로 범위는 -32,768 ~32767가 된다. (0을 제외한 65535가지 수를 표현한다.) 

  · int, long

   ◦ 4Byte 단위로 2진수 사용

   ◦ 4Byte = 32bit로 인해 범위는 2^32 = 4,294,967,296으로 범위는 -2,147,483,648 ~ 2,147,483,647가 된다.

      (0을 제외한 4,294,967,295가지 수를 표현한다.)

  · unsigned

   ◦ 부호가 없는 데이터형으로 바꿔주는 예약어

 - 실수형

  · 실수를 사용하고 싶을 때 사용하는 변수 형으로 소수점이하가 있는 숫자를 표현할 때 사용

  · unsinged는 사용이 불가능하다.

  · 실수형의 종류는 다음과 같다 

데이터형

범위

 크기

float

-3.4×10^(-37) ~ 3.4×10^(+38)

4Byte

double

-1.7×10^(-307) ~ 1.7×10^(+308)

8Byte

  · 실수를 부동소수점 방식으로 표현

    ※ 부동소수점 방식에는 오차가 존재해 컴퓨터로는 정확한 실수 표현이 불가능하다. 

- 데이터의 표현방식

 · 2진수, 10진수, 16진수

  ◦  2진수 : 2개의 기호를 이용해서 데이터를 표현하는 방식

  ◦ 10진수 : 10개의 기호를 이용해서 데이터를 표현하는 방식

  ◦ 16진수 : 16개의 기호를 이용해서 데이터를 표현하는 방식  

    

  · 데이터의 표현 단위

   ◦ 비트 : 데이터의 최소 단위인 비트로 2진수 값 하나를 저장할 수 있는 메모리 공간

   ◦ 바이트 : 문자의 최소 단위로 8개의 비트로 2진수 값 8개를 저장 할 수 있는 메모리 공간 

   

  · 정수의 표현방식

   ◦ 비트 8개로 구성되며 2진수로 표현되어 오른쪽 칸부터 채워지고 나머지 칸은 크기를 나타낸다.

   

  · 음의 정수 표현방식

   ◦ 음의 정수를 표현할 때는 해당 정수의 양의 정수를 보수를 취한 후 1을 더해줘야 음의 정수가 표현된다.

  

  · 실수의 표현방식

   ◦ 실수를 표현하는 방식을 정수를 표현하듯이 표현하면 표현할 수 있는 범위가 매우 작다.

     그래서 부동소수점 방식을 이용한다.

  

         

 

 

2. 변수 

 - 변수란

  · 데이터를 저장 할 수 있는 메모리 공간에 붙여진 이름

  · 변수의 종류는 다음 두가지로 나뉜다.

   ◦  정수형 변수 : char, int, long

   ◦  실수형 변수 : float, double

    ※ 변수를 사용할 때는 float형보다는 double형을 사용하는 것을 권장한다.

    ※ 변수가 아닌 상수는 Buffer에 저장된다.

- 변수 선언과 초기화

 <변수 선언>

   데이터형 변수이름;

        int      val;

 <변수 초기화>

   val = 1;

 <변수 선언과 동시에 초기화>

   int val = 1;

  · 변수를 선언하면 메모리 공간에 해당 변수의 공간이 생기고 변수 이름으로 그 공간에 접근 할 수 있다.

  · 변수를 선언하고 초기화를 해주지 않으면 해당변수는 쓰레기 값을 가지므로 항상 초기화를 해줘야한다. 

  · 초기화 : 변수에 초기 값을 주어주는 것 

  · 선언되지 않은 변수를 사용하면 에러가 발생하고 초기화가 되지 않았을 때는 에러가 발생할 수도 있다.

  · C언어에서는 변수의 선언을 함수의 선두 부분에 해야 한다.

   ※ 변수를 선언할 때는 의미가 있는 단어로 선언을 해줘야 다른 사람이 파악하기도 편하고 흐름을 파악하는데도 편하므로 의미를 주려고 노력해야 한다.

 - 변수 이름 작성 규칙

  · 변수의 이름은 알파벳, 숫자, _(언더바)로 구성된다.

  · C언어는 대소문자를 구분한다.

  · 변수의 이름은 숫자로 시작할 수 없고 예약어를 사용하는 것도 불가능하다.

  · 공백이나 특수 기호는 포함될 수 없다.

   ※ 예약어 

auto

_Bool

break

case

char

_Complex

const

continue

default

restrict

do

double

else

enum

extern

float

for

goto

if

_Imaginary

inline

int

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while

 

 

 

 

 

 

3. 상수

 - 상수란

  · 이미 정해져 있는 값으로 다른 값으로 초기화 불가능한 값이다.

  · 한번 값을 초기화 하면 변경 할 수 없는 공간이며 선언과 동시에 초기화 되는 값이다. 

 - 리터럴 상수 

  · 이름이 없는 상수

  · 어떤 값 자체를 의미한다.

  · ex) 1,2,3,4 → 프로그램상에 표현되는 숫자도 메모리에 저장되어야 한다.

                       이처럼 저장되는 값은 이름이 존재하지 않아 값을 변경할 수 없다.

  · 정수 상수

   ◦ 리터럴 상수 중 정수형인 상수

   ◦ 소수점 이하가 없는 데이터

   ◦ 8진수 정수, 10진수 정수, 16진수 정수, long형 정수로 나뉜다. 

 ex)

 int val1 = 10;     10진수 정수

 int val2 = 010;    8진수 정수

 int val3 = 0x10;  16진수 정수

 int val4 = 10L;    long형 정수

  · 실수 상수

   ◦ 리터럴 상수 중 실수형인 상수

   ◦ 소수점 이하가 있는 데이터

   ◦ 실수 상수는 8Byte로 저장되고 f를 붙이면 4Byte로 저장된다.

 ex) 

 double val1 = 1.2;           8Byte 실수형 

 double val2 = 1.234E+02  지수형

 float val3 = 1.2f 4Byte    실수형

  · 문자 상수

   ◦ 문자 한 글자를 의미한다.

   ◦ 작은따옴표(‘ ’)안에 표기한다.

   ◦ 특수 문자(Escape Sequence)도 문자 상수에 포함한다.

    ※ 특수 문자(Excape Sequence) : \(백슬레시)와 혼용되어 출력함수 내에서 사용되는 문자

 ex)

 char val1 = 'A'; 

 char val2 = '\n';

  · 문자열 상

   ◦ 문자 두글자 이상을 의미한다

   ◦ 큰따옴표(“ ”)안에 표기한다.

    ※ Chapter 9. 참고

 ex) 

 "Hello","Hi"

  · 심볼릭(Symbolic) 상수

   ◦ 이름이 있는 상수(변수)

   ◦ 상수의 이름은 일반적으로 대문자로 선언한다.

   ◦ const 키워드를 일반 변수에 붙여 심볼릭 상수를 만들 수 있다.

   ◦ #define 키워드를 이용해 심볼릭 상수를 만들 수 있다. 

   ※ Chapter 10. 참고

 <const를 사용할 때는 선언과 동시에 초기화 해줘야함>

 ex)  

 const int MAX1 = 100;   //MAX1=100 

 const int MAX2;           //MAX2는 쓰레기 값을 가진다.

 MAX = 200;                 // MAX2가 쓰레기 값으로 초기화된 상수이므로 컴파일오류발생

 


'C Langauage' 카테고리의 다른 글

Chapter 6. 배열(Array)과 문자열(String)  (0) 2015.08.05
Chapter 5. 제어문  (0) 2015.08.05
Chapter 4. 연산자(Operator)  (0) 2015.08.05
Chapter 3. 자료의 입출력  (0) 2015.08.05
Chapter 1. C언어 입문  (0) 2015.08.05