본문 바로가기

별걸다하는 IT/프로그래밍언어

프로그래밍에서 변수(variable)란? 자료형이란? 데이터 타입 종류 및 크기

[C언어, C++언어 완전 정복! 강의 목차 링크]

C, C++, C#, Java, Python 등등.. 다양한 언어가 있는데요.

프로그래밍 공통은 이러한 언어들에서 공통적으로!! 나오는 개념을 정리하는 카테고리예요.

공통적으로 다 포함되어 있다는 말은 기초 중에 기초이면서도 그만큼 중요한 개념이라는 뜻이겠죠?

 

프로그래밍에서 변수란?

수학 과목을 들어본 학생이라면 변수라는 단어에 대해서는 익숙할 거예요. 

x+y+z=10 할 때 미지수 x,y,z를 변수라고 부르죠?! 수학에서는 정해지지 않은, 그래서 임의의 값을 대입할 수 있는 문자를 가리켜 변수라고 합니다. 

 

프로그래밍에서도 변수는 이와 유사해요. 

 

변수는 결국 정해지지 않은 값을 저장하는 그릇, 상자인거죠! 여기 보면 15라는 데이터값을 저장한 상자 하나와, 10이라는 데이터 값을 저장한 상자 하나가 있어요. 두 상자를 구분해주기 위해서 우리는 이름 즉 변수명을 붙여서 구별합니다.

 

프로그램의 데이터는 한 번만 사용되는 것이 아니라, 프로그램이 실행되는 동안 계속해서 사용될 수 있어요. 예를 들어 두 개의 정수 값을 입력받은 후, 합을 구해서 출력하는 프로그램을 작성한다고 해봅시다. 먼저 사용자가 입력하는 두 개의 정수 값을 어딘가에 저장해 두었다가 필요할 때 다시 꺼내서 합을 구해야 해요. 이처럼 꼭 데이터를 담아둘 상자가 필요합니다.

컴퓨터에서 이 상자는 메모리에 해당돼요. 컴퓨터에서 메모리는 정말 상자처럼 데이터를 저장하는 역할을 수행해주거든요.

 

Each piece of data in the computer stored at a unique address.

컴퓨터의 각 데이터는 메모리의 한 주소에 저장됩니다. 

 

변수란 값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라고 합니다.

 

글 하나하나에 도움이 될 수 있도록 정성을 쏟았어요. 앞으로도 믿을 수 있는 좋은 정보 공유할 수 있는 블로거가 될게요. 비록 비영리 목적의 글이지만 글이 도움이 되신 분들은 광고 한번 클릭해주시면 포스팅을 작성하는데 동기부여가 팍팍!! 

타입, 자료형이란?

메모리는 연속된 데이터 바이트의 모임입니다.

 

코끼리가 냉장고에 들어갈 수 없듯이, 데이터의 크기에 따라서 상자의 크기도 달라집니다. 용량이 크면 자리를 많이 차지하는 것처럼요. 컴퓨터 세계에서도 데이터가 숫자냐, 문자냐, 소숫점이 있는 수냐 등 데이터의 종류에 따라 메모리를 차지하는 크기가 다릅니다. 

(Integer = 정수 = 4바이트, char = 문자 = 1바이트 등)

 

'어느 정도 크기의 데이터가 들어갈 것이니 맞는 상자를 구비해놔~~  = 어느 정도 크기가 필요한 데이터를 저장할 수 있게 메모리에 좀 잡아놔줘 ~' 

변수를 사용하기 위해서 특정 크기의 메모리를 준비하는 것을 "변수를 메모리에 할당한다"고 말합니다.

 

그리고 메모리에 할당된 변수가 여러 개일 때, 각각을 구분하기 위해 변수의 이름을 사용합니다.

저장될 값의 데이터형에 따라 필요한만큼 메모리를 할당받고 이름을 붙여 사용하고 "변수를 선언한다"고 합니다.

 

Variables are named memory locations that have a type, such as integer or character, and consequently, a size, which is inherited from their type.

변수는 정수 또는 문자와 같은, 결국 크기를 말하는 타입을 가지는 메모리 위치를 말합니다. (그림을 보면 이해하기 쉬워요)

 

변수의 선언문을 확인해볼까요? (C/C++/Java)

int num;

int :  Integer 즉 정수를 의미하고 이 데이터유형은 4바이트 크기를 갖습니다. 자료형을 뜻해요

num: 그 메모리 공간의 이름 즉 변수명입니다.

int num; -> 4바이트를 차지하는 정수를 저장할거니까 4바이트 공간을 잡아놓고 num이라고 이름붙여줘. 타입이 없으면 얼마를 잡아야할지 몰라서 자료형은 꼭 명시해줘야해! 

 

꼭 명시해줘야한다했는..! 그런데...! 가끔가다 다른 언어들 중 자료형을 붙이지 않거나 구별하지 않는 경우가 있어요

예를 들어 자바스크립트 언어에서는 int, character 이렇게 각 타입을 구별해 자료형을 명시하는게 아니라 var로 쓴다던가

var num =1;
var text = "hello";

파이썬이나 리눅스 bash언어는 자료형 자체가 없어요 

num =1;
text = "hello"

차지하는 용량이 다 같아서 구별을 안하는게 아니라 이런 언어의 경우 자동으로 내부에서 수행해주는거예요. 값을 보고 자료형을 판단해주는거죠 ㅎㅎ bash는 판단하지않고 그냥 다 문자열로 인식해버림

 

자료형의 종류(Standard Data Types)와 크기

기본적으로 각 자료형들이 차지하는 크기는 알고 있어야 합니다.

 

 자료형

 크기

 값의 표현 점위 

 정수형

 char 

 1바이트 

 -128 이상 +127이하 

 short

 2바이트 

 -32,768이상 +32,767 이하 

 int 

 4바이트 

 -2,147,483,648 이상 +2,147,483,647이하

 long

 4바이트 

 -2,147,483,648 이상 +2,147,483,647이하

 long long 

 8바이트 

 -9,223,372,036,854,775,808이상 +9,223,372,036,854,775,807이하

 실수형

 float

 4바이트 

 

이상 

 double

 8바이트 

 

이상 

 long double

 8바이트 이상 

 double 이상의 표현 범위 

 

추가적인 변수관련 내용에 대해서는 각각 프로그래밍 강좌 팔때(?) 깊게 더 들어가는걸로 하고 오늘 포스팅은 여기서 마무리하겠습니다.

 

공감~!