승쨩개발공부

[C++] 변수 / 자료형 / 상수 / 표기법 본문

C++

[C++] 변수 / 자료형 / 상수 / 표기법

SeungHyune 2021. 11. 23. 14:27

변수와 자료형

변수

메모리를 할당하고 할당한 공간에 이름을 부여하는 것.

-> 할당한 메모리를 의미.

-> int a,b,c등

 

자료형

얼마만큼 할당할 것인지, 해당 공간에는 어떤 데이터를 저장할 것인지 설정하는것.

-> int, float, double 등

 

 

변수

쓰레기 값

변수를 선언만할 경우 해당 공간에는 쓰레기 값이 저장되어 있다.

 

쓰레기값?

사용자가 사용하기 위한 값이 아닌 아무런 의미가 없는 값

ex) int PlayerHp;

 

 

변수 초기화

변수의 값을 채워 넣는 행위 '='를 이용해서 값을 채워 넣을 수 있다

ex)

int PlayerHp;

PlayerHp = 100;      // PlayerHP라는 이름을 부여받은 공간에 100이라는 정수 값을 채워 넣는다.

 

선언과 동시에 초기화

변수를 메모리에 등록시키는 시점에 값을 채워 넣는다.

ex)

int PlayerHp = 100;

 

 

변수명 규칙

변수 이름을 설정할 떄 규칙에 맞도록 설정하는 것.

 

1. 변수명은 대문자와 소문자, 숫자로 구성할 수 있다    단, 순자가 먼저 올 수 없다.

int PlayerHp1;  가능
int player1Hp;  가능
int 1PlayerHp;  불가능

 

2. 변수명에는 특수 문자를 사용할 수 없다  단, '_'(언더바) 는 사용이 가능하다.

int PlayerHp_;   가능

int Player_Hp;   가능
int _PlayerHp; 가능
int PlayerHp!; 불가능

 

3. 변수명에는 대소문자를 확실히 구분한다.

int playerhp;
int playerHp;

서로 다른 변수가 된다.

 

4. 프로그래밍에서 제공하는 기본 키워드로는 변수명을 지을 수 없다

int namespace; // 불가능

 

 

자료형

 1. 정수 자료형
소수점이 없는 정수만 저장하는 자료형
short, int, long, long long
short a = 10;
int b = 20;
long c = 30;
long long d = 40;

 

 2. 실수 자료형
소수점을 포함하는 숫자를 저장할 수 있는 자료형

float, double, long double
float a = 3.14f;
double b = 3.1415;
long double c = 3.141592;

 

 

3. 단일 문자 자료형

char

저장한 값이 의미하는 문자를 확인하여 문자로 출력해준다.
char a = 'A';    A
char b = '65';  65는 아스키코드로 A를 의미해 A가 출력이 된다.

 

 

4. 논리 자료형
bool
저장하는 값이 0(거짓)이 아니면 모두 1(참)이 된다.
bool a = true;   참
bool b = false;  거짓
bool c = 10;
bool d = 3.14f;
bool e = 'a';
bool f = 0.0001;
bool g = 0;

 

cout << "a: " << a << endl;   1
cout << "b: " << b << endl;  0
cout << "c: " << c << endl;   1
cout << "d: " << d << endl;  1
cout << "e: " << e << endl;  1
cout << "f: " << f << endl;   1
cout << "g: " << g << endl;  0

 

 

자료형의 크기

컴퓨터는 데이터를 0 또는 1로 저장한다.

0 또는 1을 저장하기 위한 최소 단위를 bit라고 표현한다.

-> 1bit로는 0 또는 1을 표현할 수 있다.

이러한 bit들이 모여서 8개가 모일경우 8bits라고 말하며 8bits를 다른말로 1byte라고 표현한다.

여기서 나온 byte가 자료형의 단위를 의미한다 단, byte의 증가 값은 2의 n승으로 증가한다

운영체제 환경에 따라 자료형의 크기가 달라진다.

16bits환경에서 int 자료형은 2bytes의 크기를 가진다

32bits환경에서 int 자료형은 4bytes의 크기를 가진다

 

1byte(8bits)의 크기를 가지는 자료형 : char, bool
2bytes(16bits)의 크기를 가지는 자료형 : short
4bytes(32bits)의 크기를 가지는 자료형 : int, long, float
8bytes(64bits)의 크기를 가지는 자료형 : long long, double, long double

 

 

상수

변하지 않고 고정되어 있는 수

변수 선언 시 자료형 앞에 const 를 붙여주면 상수가 된다.

변수가 상수가 될 경우 값 변경이 불가능 하다.

ex)

const int a = 10;

a = 100;   불가능

 

const로 상수를 만들 경우에는 선언과 동시에 초기화를 진행해야한다.

변수 선언시 초기화를 하지 않을 경우 쓰레기 값으로 초기화가 되고 쓰레기 값이 상수가 되어버린다.

 

 

 

리터럴 상수

문자 그대로의 상수  ex) 1,2,3

컴퓨터가 연산을 수행하는 곳은 CPU이다.

단, 메모리에 등록된 정보를 토대로 연산을 수행한다.

3과 4는 메모리에 등록이되어 있지 않아 연산을 수행할 수 없는 상황이다.

리터럴 상수의 연산을 수행하기 위해 임시 메모리에 영역에 잠시 등록하여 연산을 수행한다.

말 그대로 임시 메모리 영역이기 떄문에 임시 메모리에 등록이 된다.

다음과 같은 연산을 수행하기 위해서는 12byte의 메모리 영역이 필요하다.

int a = 3 + 4 -> CPU -> 임시 메모리 영역(3,4) -> 임시 메모리 영역(7) 복사 -> a = 7

결과가 나오면 3과 4는 코드라인에서 벗어나기 떄문에 소멸이 된다.

3과 4가 소멸이 되었기 떄문에 사용하고 있는 메모리 영역은 12byte -> 4byte가 된다.

 

 

float에만 f키워드를 붙이는 이유. ex) 3.14 -> 3.14f

-> 임시 메모리 영역에 등록되는 데이터가 정수형이라면 기본 int형으로 간주한다 (4byte)

-> 임시 메모리 영역에 등록되는 데이터가 실수형이라면 기본 double형으로 간주한다 (8byte)

 

 

 

 

 

표기법

-> 변수명을 설정하는데 있어 해당 소속 규칙에 맞는 방법으로 설정하는 것.

 

표기법이 필요한 이유

-> 팀 작업을 수행하는데 원할한 팀작업을 하기 위해