[C++/2] 자료형과 변수
# 자료형과 변수
자료형
자료형이란, 데이터(값)를 컴퓨터에 저장하는 형태를 의미합니다.
컴퓨터의 모든 데이터는 이진법으로 표현되어 있습니다. 하지만 이진법은 저희가 바로 쓰기에는 꽤 불편합니다.
사람은 문자와 숫자를 사용합니다. 일반적으로 숫자는 십진법을 사용하며, 자연수, 정수, 실수, 복소수 등 다양한 범위로 사용하고 있고, 문자는 다양한 언어(주로 영어)와 기호를 사용하고 있습니다.
컴퓨터에서 사람이 사용하는 수를 그대로 사용하려면 이진법으로 이 모든 문자, 숫자를 매칭할 수 있어야합니다. 자료형의 역할은 데이터가 어떤 자료 형태를 가지고 있는지를 설명해주며 변수와 함께 쓰여 "이 변수는 ~한 형태의 자료를 가지고 있다"라는 의미를 부여해줍니다.
변수
변수는 간단히 "변화할 수 있는 수"를 의미한다고 생각할 수 있습니다.
컴퓨터의 프로그램은 여러 정보를 저장할 수 있어야 합니다. FPS 게임이라면 한다면 체력, 탄창을 저장하고 그림판이라면 현재 색과 그림 크기를 저장하고 웹 브라우저라면 현재 창 정보와 주소 등의 정보를 저장합니다. 프로그램은 이런 저장된 정보들을 활용하여 프로그램 사용자에게 상황에 따라 더욱 향상된 다양한 경험을 제공해줄 수 있습니다.
컴퓨터 프로그램을 사용하는 동안 프로그램에서 필요한 정보들은 컴퓨터에 저장해야합니다. 우리는 프로그래밍할 때 변수를 사용하여 우리가 만든 프로그램이 메모리공간 일부를 점유하여 정보를 저장할 수 있도록 해줍니다. 그리고 프로그램은 다시 변수를 호출하여 이전에 점유한 메모리공간 일부에 접근하여 저장된 정보를 활용할 수 있습니다.
#include<iostream>
using namespace std;
int main() {
short short_integer;
int integer;
long long long_integer;
char character;
wchar_t unicode_character;
float floating_number;
double bigger_float;
}
예시 코드
C++에서 모든 값(문자, 숫자)은 자료형이 자동으로 부여됩니다. 값을 저장하기 위한 변수를 만들기 위해서는 (자료형 + 공백 + 변수명)으로 생성합니다. 변수를 선언하고, 사용할 때 규칙은 아래와 같습니다.
규칙 세 가지
# 규칙1
자료형-공백-변수명; // 이 형태로 변수를 생성합니다.
int var_name1; // 예시입니다
# 규칙2
자료형은 사용하려는 형태와 범위에 맞게 사용해야합니다.
자료형 | 형태 | 범위 |
short (short integer를 의미) |
정수 | -32,768~32,767 (\(-2^{15}\sim2^{15}-1\)) |
int (integer를 의미) |
정수 | -2,147,483,648~2,147,483,647 (\(-2^{31}\sim2^{31} -1\)) |
long long (long integer를 의미) |
정수 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (\(-2^{63}\sim2^{63} -1\)) |
char (character를 의미) |
문자 | 알파벳, 숫자, 특수기호, 이스케이프 시퀀스를 포함한 문자 (\(-2^7\sim2^7 -1\)) |
wchar_t (wide character type을 의미) |
문자 | char의 문자와 다국어를 포함한 문자 |
float (floating point number를 의미) |
실수 | 1.175494e-38 ~ 3.402823e+38 |
double (high precision floating point number를 의미, 큰 사이즈의 float) |
실수 | 2.225074e-308 ~ 1.797693e+308 |
변수의 자료형을 사용하려는 형태와 범위에 맞게 사용하지 않으면 자료형마다 연산 결과가 조금씩 다를 수 있고 오버플로우 등의 문제 때문에 프로그램이 원하는대로 작동하지 않을 수 있습니다.
ex 1) double a = 3 일 때, a / 2 == 1.5 이지만, int a = 3 일 때, a / 2 == 1 입니다.
ex 2) short a = 32767 일 때, a + 1 == -32768이 됩니다. 오버플로우가 발생했기 때문입니다.
# 규칙3
변수명을 제작할 때는 아래의 규칙을 따르지 않으면 오류가 발생합니다.
- 예약어(keyword, C++에서 특수한 목적으로 사용하기로 약속한 이름(예, int))를 변수명으로 사용할 수 없다.
- 중복된 변수 이름은 사용할 수 없다.
- 변수명은 숫자로 시작할 수 없다.
- 특수기호는 _(언더바 또는 언더스코어라고 함)만 사용할 수 있다.
이외에도 변수명의 길이에 제한이 없다던가(환경에 따라 다를 수 있습니다), 언더바를 변수명 앞에 붙이는 경우에는 컴파일러가 사용한다던가 등의 정보와 변수명을 표기하는 여러가지 표기법에 대해 알면 좋습니다.
Log
2022. 05. 02 가독성 높이기