1. 데이터 타입(Data Type)1. 데이터타입(Data Type)
변수(Variable)에 저장될 데이터의 형식을 나타내는 것으로 변수에 값을 저장하기 전에 문자형, 정수형, 실수형 등 어떤 형식의 값을 저장할 지 데이터 타입을 지정하여 변수를 선언해야 한다.
※ 데이터타입은 운영체제(OS)에 따라 기억 범위와 크기가 조금씩 다르다.
유형 | 기능 | 예 |
정수 타입(Integer Type) | 정수, 즉 소수점이 없는 숫자 | 1, -1, 10, -100 |
부동 소수점 타입(Floating Poin Type) | 소수점 이하가 있는 실수를 저장 | 0.123x10, -1.6x2.31 |
문자 타입(Character Type) | 한 문자 저장시 사용 작은 따음표('')안에 사용 |
'A', 'a', '1', '*' |
문자열 타입(Character String Type) | 문자열을 저장 시 사용 큰 따옴표("")안에 표시 |
"Hello", "'1+2=3" |
불린 타입(Boolean Type) | 조건의 참(True), 거짓(False) 여부 판단 | true or false |
배열 타입(Array Type) | 같은 타입의 데이터 집합을 만들어 저장 | {1,2,3,4,5} |
C/C++의 데이터 타입 크기 및 기억 범위
종류 | 데이터 타입 | 크기 | 기억 범위 |
문자 | char | 1Byte | -128~127 |
부호없는 문자형 | unsigned char | 1Byte | 0~255 |
정수 | short | 2Byte | -32,768~32,767 |
int | 4Byte | -2,147,483,648 ~ 2,147,438,647 |
|
long | 4Byte | -2,147,483,648 ~ 2,147,438,647 |
|
long long | 8Byte | -9,223,372,036,854,775,808~ 9,223,372,036,854,775,807 |
|
부호없는 정수형 | unsigned short | 2Byte | 0~65,535 |
unsigned int | 4Byte | 0~4,294,967,295 | |
unsigned long | 4Byte | 0~4,294,967,295 | |
실수 | float | 4Byte | 1.2x10^-38~3.4x10^38 |
double | 8Byte | 2.2x10^-308~1.8x10^308 | |
long double | 8Byte | 2.2x10^-308~1.8x10^308 |
JAVA의 데이터 타입의 크기 및 기억 범위
종류 | 데이터타입 | 크기 | 기억범위 |
문자 | char | 2Byte | 0~65,535 |
정수 | byte | 1Byte | -128~127 |
short | 2Byte | -32,768~32,767 | |
int | 4Byte | -2,147,483,648~ 2,147,438,647 |
|
long | 8Byte | -9,223,372,036,854,775,808~ 9,223,372,036,854,775,807 |
|
실수 | float | 4Byte | 1.4x10^-45 ~ 3.4x10^38 |
double | 8Byte | 4.9x10-324~1.8x10^308 | |
논리 | boolean | 1Byte | true 또는 false |
Python의 데이터 타입 크기 및 기억 범위
종류 | 데이터 타입 | 크기 | 기억 범위 |
문자 | str | 무제한 | 무제한 |
정수 | int | 무제한 | 무제한 |
실수 | float | 8Byte | 4.9x10^-324~1.8x10^308 |
complex | 16Byte | 4.9x10^-324~1.8x10^308 |
* complex 는 복소수를 의미, 복소수는 실수와 허수의 합으로 이루어진 숫자 표현
2. 변수(Variable)
컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로, 변할 수 있는 값을 의미
* 변수는 저장하는 값에 따라 정수형, 실수형, 문자형, 포인터형 등으로 구분합니다.
변수명 작성 규칙
- 영문자, 숫자, _ 를 사용할 수 있다.
- 첫 글자는 영문자나 _로 시작해야 하며, 숫자는 올 수 없다.
- 글자 수에 제한이 없다.
- 공백이나 *, +, -, / 등의 특수문자를 사용할 수 없다.
- 대/소문자를 구분한다.
- 예약어를 변수명으로 사용할 수 없다.
- 변수 선언 시 문장 끝에 반드시 세미콜론(;)을 붙여야 한다.
예약어
정해진 기능을 수행하도록 이미 용도가 정해져 있는 단어로, 변수 이름이나 다른 목적으로 사용 할 수 없습니다.
구분 | 예약어 | |
제어문 | 반복 | do, for, while |
선택 | case, default, else, if switch | |
분기 | break, continue, goto, return | |
자료형 | char, double, enum, float, int, long, short, signed, struct, typedef, union, unsigned, void | |
기억 클래스 | auto, extern, register, static | |
기타 | const, sizeof, volatile |
기억클래스
변수 선언 시 메모리 내에 변수의 값을 저장하기 위한 기억영역이 할당되는데, 할당되는 기억영역에 따라 사용 범위에 제한이 있다.
이러한 기억영역을 결정하는 작업을 기억 클래스(Storage Class)라고 한다.
종류 | 기억영역 | 예약어 | 생존기간 | 사용 범위 |
자동 변수 | 메모리(스택) | auto | 일시적 | 지역적 |
레지스터 변수 | 레지스터 | register | ||
정적 변수(내부) | 메모리(데이터) | static | 영구적 | |
정적 변수(외부) | 전역적 | |||
외부 변수 | extern |
1. 자동변수(Automatic Variable)
함수나 코드의 범위를 한정하는 블록 내에서 선언되는 변수
- 함수나 블록이 실행되는 동안에만 존재, 이를 벗어나면 자동으로 소멸
- 초기화하지 않으면 쓰레기값(Garbage Value)이 저장
2. 외부변수(External Variable)
현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조(reference)하기 위한 변수
- 외부변수는 함수 밖에서 선언한다.
- 함수가 종료된 뒤에도 값이 소멸되지 않는다.
- 초기화하지 않으면 자동으로 0으로 초기화된다.
- 다른 파일에서 선언된 변수를 참조할 경우 초기화 할 수 없다.
3. 정적변수(Static Variable)
함수나 블록 내에서 선언하는 내부 정적 변수와 함수 외부에서 선언하는 외부 정적 변수가 있다.
- 내부정적변수는 선언한 함수나 블록 내에서만 사용할 수 있다.
- 외부정적변수는 모든 함수에서 사용할 수 있다.
- 두 변수 모두 함수나 블록이 종료된 뒤에도 값이 소멸되지 않는다.
- 초기화는 변수 선언 시 한 번만 할 수 있으며, 초기화를 생략하면 자동으로 0으로 초기화된다.
4. 레지스터변수(Register Variable)
레지스터 변수는 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수이다.
- 자주 사용되는 변수를 레지스터에 저장하여 처리속도를 높이기 위해 사용한다.
- 함수나 블록이 실행되는 동안에만 존재하며 이를 벗어나면 자동으로 소멸
- 레지스터의 사용 갸수는 한정되어 있어 데이터를 저장할 레지스터가 없는 경우 자동 변수로 취급되어 메모리에 할당된다.
- CPU에 저장되어 메모리 주소를 가질 수 없기 떄문에 변수의 주소를 구하는 주소 연산자(&)를 사용할 수 없다.
'정보처리이론' 카테고리의 다른 글
1-6. Python 의 기초와 라이브러리 (0) | 2020.10.17 |
---|---|
1-5. 포인터와 사용자정의함수 (0) | 2020.10.17 |
1-4. 배열과 문자열 (0) | 2020.10.17 |
1-3. 제어문과 반복문 (0) | 2020.10.17 |
1-2. 데이터입출력과 연산자 (0) | 2020.10.17 |