C++ 변수
// 변수 (Variable)
1. 정의
- 데이터를 넣어두는 저장 공간
- 한 번 저장해놓으면 필요할 때 언제든 꺼내서 사용할 수 있다.
- 데이터의 종류(자료형)에 따라 각각 다른 형태로도 사용.
2. 선언과 초기화
- 중괄호 블록 안에서 이루어진다.
- 둘 이상의 변수를 선언할 경우, 자료형이 같으면 연속 선언이 가능하다.
- 변수를 사용하기 전에 원하는 값을 미리 대입해두는 것 => 초기화.
3. 자료형 (데이터 타입)
(1) 정수형 : 부호(+-)를 가지고 있으며, 소수점이 없는 수
1. int
- 연산의 기본 단위
- 가장 많이 사용하면서 처리 속도도 가장 빠르다.
- 메모리에 할당되는 크기는 4 byte
- 값의 저장 범위 : -21억 ~ 21억
- 변환 제어 문자는 %d
2. short
- 메모리를 적게 사용하나, int로의 변환 과정에서 느려질 수 있다.
- 메모리에 할당되는 크기는 2byte
- 값의 저장 범위 : -32,768 ~ 32,767
- 변환 제어 문자는 %d
3. long
- 사용할 필요가 없음. int형이 2바이트로 구현된 컴파일러에서 사용.
- 메모리에 할당되는 크기는 4byte
- 값의 저장 범위 : int형과 동일
- 변환 제어 문자는 %ld
4. unsigned 형 정수
- 정수형은 보통 양수와 음수 모두를 저장함
- 하지만 양수만 저장하면 2배 더 넓은 범위를 가질 수 있다.
- unsigned는 양수만 저장할 때에 자료형 앞에 붙여서 사용
- 변환 제어 문자는 %u, %lu(unsigned long)
(2) 실수형
- 소수나 지수가 있으며, 정수보다 훨씬 더 넓은
표현 범위를 가지는 수의 통칭
- 컴퓨터에서 실수 표현 방식에 오차를 가지고 있기 때문에,
표현 정도에 따라 출력되는 값이 변화한다.
- double의 값을 float에 집어넣으면 값이 잘려나간다.
- 각 자료형이 지원하는 범위 내의 값으로 입력하는 게 베스트.
- 프로그래밍에서는 정수형을 기본으로 한다.
필요한 경우에는 실수형을 사용해야한다.
- 실수형은 유효숫자가 많은 double을 우선으로 사용한다.
1. float
- 메모리에 할당되는 크기는 4byte
- 값의 저장 범위 : -3.4*10^38 ~ 3.4*10^38
- 소수점 이하 표현 범위 : 6자리
- 변환 제어 문자는 %f
2. double
- 메모리에 할당되는 크기는 8byte
- 값의 저장 범위 : -1.79*10^308 ~ 1.79*10^308
- 소수점 이하 표현 범위 : 14자리
- 변환 제어 문자는 %lf
(3) 문자형
- 작은 범위의 정수나 문자 하나를 표현
- 문자를 저장할 떄는 작은 따옴표('')를 사용
1.char
- 메모리에 할당되는 크기는 1byte
- 값의 저장 범위 : -128 ~ 127 또는 문자 1개
- 변환 제어 문자는 %c
* unsigned char
- 메모리에 할당되는 크기는 1byte
- 값의 저장 범위 : 0 ~ 255
- 변환 제어 문자는 %u
(4) 논리형
- 실생활에서 예/아니오 -> 다시 말해 참/거짓을 구분하려고 만든 자료형
- C++11 이전에는 c언어처럼 0인 값을 거짓,
0이 아닌 값을 참으로 인식했다.
- 그런데 C++11부터 bool이라는 새로운 타입이 생겼다.
- true/false로 구분하나, 실제 저장값은 1과 0
- C언어에서는 C99 이후부터 #include <stdbool.h> 추가로 사용가능
1.bool (boolean)
- 메모리에 할당되는 크기는 1byte
- 0 : false
- 1 : true
(5) const
- 변수를 선언하고 초기화할 때 자료형 앞에 const를 붙이면
초기화된 값을 바꿀 수 없다.
- const를 사용하면 그 이후에 값을 변경 할 수 없으므로
반드시 선언과 동시에 초기화해야만 한다.
- 값이 바뀌지 않는 데이터를 만드는 이 과정을 상수화(constant)라고 한다.
<예시>
const int a = 100;
(6) auto
- C++11부터 변수의 초기화 값에 맞춰서 해당 변수의 타입을 자동으로 추론
- 변수를 초기화할 때 특정 타입을 명시하는 대신,
- auto 키워드를 사용하여 타입을 자동으로 맞춰줄 수 있다.
(7) 예약어와 식별자
- 예약어(reserved word 또는 keyword) : 컴파일러와 사용 방법이 이미 약속된 단어 (int, float, bool..파란색으로 표시되는 것)
- 식별자(identifier) : 필요에 따라 만들어 쓰는 단어 (변수명)
< 식별자를 작성할 떄의 주의점 >
1. 알파벳 대소문자 A-Z & a-z, 숫자 0-9, _(underline) 으로만 작성
2. 변수명을 한국어 작성하지 말 것.
3. 변수명의 첫글자에 숫자가 올 수 없다.
4. 대문자와 소문자는 서로 다른 식별자로 인식한다.
5. 예약어는 식별자로 사용 할 수 없다.
6. 중간에 빈 칸(띄어쓰기)를 넣을 수 없다.
7. 하이픈(-) 사용불가.
8. 틸드(~) 사용불가.
9. 특수문자 사용불가.