본문 바로가기
Software/C++&MFC 핵심노트

[C++/MFC 핵심노트] 변수형, Data type의 기본

by lovey25 2018. 10. 25.
반응형

C++에서 사용하는 변수들의 큰~ 분류별로 어떤것들이 있는지와 변수는 어떻게 사용하는 것인지 알아봅시다.

변수들은 모두 사용하기전에 선언을 해주어야 합니다. 앞으로 이 단어는 내가 변수로 사용 하겠어라고 선언을 하면 컴파일러는 그단어가 나올때 마다 변수로 인식하고 변수 그대로의 문자로 인식하는 것이 아니라 변수에 저장된 data를 인식하게 되는 것이죠. 

변수의 선언을 위해서는, 변수의 형을 먼저쓰고 그 뒤에 사용하고자 하는 변수이름을 쓰면 됩니다. 이게 무슨말인가 싶은데 지금부터 변수들을 하나씩 알아가면서 사용법도 알아보도록 하죠.

변수에는 그 용도별로 다양한 형태들이 있습니다. 정수를 저장하는 'int', 실수를 저장하는 'float', 문자와 문자열을 저장하는 'char'와 'string' 등이 있습니다. 그리고 이런 기본적인 형태 외에도 각 플랫폼별로 사용의 편의성을 도모하기위해 사용되는 더욱 다양한 변수들도 있지만 우리는 아주 기초적인 당장 써먹는데 필요한 지식만 훑어보도록 하겠습니다.

int (Integers, 정수형)

int는 정수를 담는 정수형 변수입니다. 0을 포함하여 음수와 양수를 저장할 수 있으며 4바이트의 크기를 가지고 있습니다. 4바이트는 32비트와 같은 크기이니까 10진수로 표현하면 4,294,967,296[각주:1]가 됩니다. 

정수는 음수와 0 그리고 양수로 이루어 져 있기 때문에 int에 저장될 수 있는 정수의 범위는 -2,147,483,648 ~ 2,147,843,647 가 됩니다. 

그리고 int 앞에 붙여서 원래 int변수를 더 크게 혹은 작게 쓸 수 있도록 해주는 그런 접두어도 있습니다. 참고로 보시고 앞으로 샘플 코드들을 보다가 이런게 나오면 아 그거구나 정도만 감잡으시면 되겠습니다.

 접두어 + int 설명 
 signed int  int와 같은 표현으로 양수와 음수를 모두 저장
 unsigned int  양수만 저장 0부터 4,294,967,295까지
 short int  int 크기의 절반
 long int  int 크기의 2배

자 이제 변수 선언의 예제 입니다. 만약, 0부터 아~주 큰~~ 양수를 저장해야 할 일이 있고 변수의 이름을 'very_big_positive'로 하고 싶다라고 한다면 다음과 같이 선언할 수 있다는걸 보여드리고 정수는 마무리 하겠습니다.

Unsigned long int very_big_positive;    // 변수선언 

float (Floating point value, 실수형)

float 자체는 4 bytes의 크기를 가지고 있고 int와 마찬가지로 double: 8 bytes, long double: 16 bytes 등의 다른 크기로도 사용할 수 있습니다. 

그리고, 아래 코드처럼 선언과 동시에 값을 넣어주면 변수가 만들어지면서 해당 값으로 초기화가 됩니다.

float val_float = 3.14;                // 실수 선언 및 초기화 
Double val_doublefloat = 3.1415;      // Double 선언 및 초기화 

bool (Booleans, 불형)

bool 변수는 0과 1만 사용할 수 있는 변수입니다. 

코딩에서는 흔히 0은 false(거짓), 1은 true(참)로 사용됩니다.

bool status = false;    // 선언 및 초기화 
bool is_error = true;   // 선언 및 초기화 

만약 int값을 bool변수에 대입할 경우 0은 0이되고 0이 아닌 다른 수는 1이 된다는 점 참고로 알아두세요.

char, wchar_t (Characters, 문자형)

문자형 변수 입니다. 

char은 기본적인 문자1개를 담는 변수이고 크기는 1바이트 입니다. 기본적으로 ASCII로 처리합니다. 따라서 유니코드 한글 1글자는 2바이트이기 때문에 char변수에 담을 수가 없습니다.

이처럼 1바이트를 초과하는 문자인 와이드문자(wide character)나 멀티바이트 문자(multibyte character)는 wchar_t를 사용합니다. 그리고 변수에 문자를 대입할때 대입되는 문자가 와이드문자임을 컴파일러에게 알려주기 위해서 앞에 L접두어를 붙여줍니다.

문자는 여러타입이 있고 인코딩도 많고해서 저는 참 어려운 부분인것 같습니다.

문자,문자열의 인코딩과 유티코드, 멀티바이트 등에대한 내용은 다음 포스트를 참고해 주세요.
    (문자 인코딩 - 유니코드와 멀티바이트란 무엇인가?

문자변수 선언방법입니다.

char ch_val = 'A';        // 'A'의 ASCII 코드 (0x41)가 대입 
wchar_t wch_val = 'A';    // 'A'의 Unicode 코드 (0x0041)대 대입

 

끝!

  1. 2의 32승 [본문으로]

반응형

댓글