반응형
CPP 초급 강좌 6. C++ 변수의 특징
이번에는 변수의 특징, 그리고 c++11 상위 버전에서 가능한 특징 등을 공부해보자.
먼저 변수?
변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다.
기본형 | void | – | – |
문자형 | (signed) char | 1 byte | -128 ~ 127 |
unsigned char | 1 byte | 0 ~ 255 | |
wchar_t | 2 byte | 0 ~ 65,535 | |
정수형 | bool | 1 byte | 0 ~ 1 |
(signed) short (int) | 2 byte | -32,768 ~ 32,767 | |
unsigned short (int) | 4 byte | 0 ~ 65,535 | |
(signed) int | 4 byte | -2,147,483,648 ~ 2,147,483,647 | |
unsigned int | 4 byte | 0 ~ 4,294,967,295 | |
(signed) long (int) | 4 byte | -2,147,483,648 ~ 2,147,483,647 | |
unsigned long (int) | 4 byte | 0 ~ 4,294,967,295 | |
__int8 | 1 byte | -128 ~ 127 | |
__int16 | 2 byte | -32,768 ~ 32,767 | |
__int32 | 4 byte | -2,147,483,648 ~ 2,147,483,647 | |
__int64 | 8 byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
실수형 | float | 4 byte | 3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4*10^38) (7digits) |
(long) double | 8 byte | 1.79E-308(-1.79*10^308) ~ 1.79E+308(1.79*10^308) (15digits) |
cpp 변수의 특징
1. 함수의 중간에 변수를 선언가능
int main()
{
//int n = 0; 과거, 특정 c컴파일러는 무조건 변수들은 함수의 최 상단에만
if (true) {}
int n = 0;
}
코딩을 시작하신 지 오래지 않은 분들은 이건 당연히 되는 거 아니냐라고 생각하실 수 있지만, 과거 c컴파일러들에서 변수는 무조건 함수의 최 상단에만 존재해야 했다.
2. 구조체나 클래스를 만들 때 맴버 초기화 가능
struct point {
float x = 0.0f; //구조체를 만들때 맴버 초기화 가능
float y = 0.0f;
};
int main()
{
point p;
}
해당 기능은 c++ 11부터 지원했다. 이전에는 생성 이후 초기화해줘야 했다. 생성자에서 하거나 완전 명시적으로 코딩을 해줘야 했다.
3. 숫자 입력 시에 2진수, 8진수, 16 진수 등을 입력할 수 있다.
int main()
{
int n = 0;
n = 10; //10진수 표기
n = 0x10; //16진수 표기
n = 010; //8진수 표기
n = 0b10; //2진수 표기
}
일반적으로 잘 쓸 일은 없어 보이지만 이런 행위들이 가능하다. 2진수 표기법 같은 경우는 c++ 11부터 지원한다.
4. 자릿수 표기법
int main()
{
int n = 0;
n = 10000000;
n = 10,000,000; //1번
n = 10'000'000; //2번
n = 1000'0'0'0'0; //3번
}
1번과 같은 코드가 우리가 이미 자주 쓰는 표현이라 되면 참 좋겠지만 불가능하다. , 는 이미 다른 곳에 예약어이다.
2번과 같이 ' 을 사용해야 한다. 순수 가독성을 위한 코드다 컴파일시에는 모두 제거된다.
3번과 같이 꼭 3자리수 표기뿐을 위함이 아닌 자신이 사용하고 싶은 용도로 사용하면 된다.
2, 3번도 결과적으로 n = 10000000; 코드로 변경되어 컴파일되는 것이다.
해당 기능은 c++11부터 추가된 내용이다.
5. C++11에서 추가된 데이터 타입
long long n = 1000; //64bit 정수
char16_t t1; //UTF16
char32_t t2; //UTF32
char8_t t3; //UTF8 C++20부터 지원
반응형
'IT > C++(CPP)' 카테고리의 다른 글
CPP 초급 강좌 8. C++ auto, decltype (1) | 2020.10.12 |
---|---|
CPP 초급 강좌 7. C++ 일관된 초기화(uniform initialization) (6) | 2020.10.08 |
CPP 초급 강좌 5. C++ Manipulator, Iomanipulator, 조정자 (0) | 2020.10.05 |
CPP 초급 강좌 4. C++ 표준입출력 (4) | 2020.10.02 |
CPP 초급 강좌 3. C++ 해더 파일에 대해서 header files (0) | 2020.09.25 |
댓글