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 |