Study About Computing/언어_Language

[C++/2] 자료형과 변수

gamgok 2022. 4. 26. 01:07

# 자료형과 변수

자료형

자료형이란, 데이터(값)를 컴퓨터에 저장하는 형태를 의미합니다.

 

컴퓨터의 모든 데이터는 이진법으로 표현되어 있습니다. 하지만 이진법은 저희가 바로 쓰기에는 꽤 불편합니다.

사람은 문자와 숫자를 사용합니다. 일반적으로 숫자는 십진법을 사용하며, 자연수, 정수, 실수, 복소수 등 다양한 범위로 사용하고 있고, 문자는 다양한 언어(주로 영어)와 기호를 사용하고 있습니다.

 

컴퓨터에서 사람이 사용하는 수를 그대로 사용하려면 이진법으로 이 모든 문자, 숫자를 매칭할 수 있어야합니다. 자료형의 역할은 데이터가 어떤 자료 형태를 가지고 있는지를 설명해주며 변수와 함께 쓰여 "이 변수는 ~한 형태의 자료를 가지고 있다"라는 의미를 부여해줍니다.

 


변수

변수는 간단히 "변화할 수 있는 수"를 의미한다고 생각할 수 있습니다.

 

컴퓨터의 프로그램은 여러 정보를 저장할 수 있어야 합니다. 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

변수명을 제작할 때는 아래의 규칙을 따르지 않으면 오류가 발생합니다.

  1. 예약어(keyword, C++에서 특수한 목적으로 사용하기로 약속한 이름(예, int))를 변수명으로 사용할 수 없다.
  2. 중복된 변수 이름은 사용할 수 없다.
  3. 변수명은 숫자로 시작할 수 없다.
  4. 특수기호는 _(언더바 또는 언더스코어라고 함)만 사용할 수 있다.

이외에도 변수명의 길이에 제한이 없다던가(환경에 따라 다를 수 있습니다), 언더바를 변수명 앞에 붙이는 경우에는 컴파일러가 사용한다던가 등의 정보와 변수명을 표기하는 여러가지 표기법에 대해 알면 좋습니다.


Log

2022. 05. 02 가독성 높이기