-
C++ 변수 (2)C++ 2025. 3. 17. 17:54
#include <iostream> #include <climits> using namespace std; int main() { int n_int = INT_MAX; short n_short = SHRT_MAX; long n_long = LONG_MAX; long long n_llong = LLONG_MAX; cout << "int는 " << sizeof n_int << "바이트이다." << endl; cout << "이 바이트의 최대값은 " << n_int << "이다." << endl; cout << "short은 " << sizeof n_short << "바이트이다." << endl; cout << "이 바이트의 최대값은 " << n_short << "이다." << endl; cout << "long은 " << sizeof n_long << "바이트이다." << endl; cout << "이 바이트의 최대값은 " << n_long << "이다." <<endl; cout << "long long은 " << sizeof n_llong << "바이트이다." << endl; cout << "이 바이트의 최대값은 " << n_llong << "이다." <<endl; return 0; }
먼저 실행 결과는 다음과 같다.
먼저 climits은 C++에서 정수형 데이터 타입의 최솟값과 최대값을 정의한 헤더 파일이다.
정수형은 소수부가 없는 수이며, 음의 정수, 0 , 양의 정수로 구성된다.
위 4가지의 자료형 모두 정수형으로 사용하지만, 상황에 따라 변수에 맞는 자료형을 사용하는 것이 메모리 관리에 효율적이다.
short형을 예로 들면, 값의 범위가 -32768 ~ 32767까지가 범위이다.
unsigned는 번역하면 '부호가 없는' 이라는 뜻으로, 음의 정수는 저장하지 않는다는 것을 의미한다.
단, 그만큼 양의 정수를 저장할 수 있는 범위가 넓어진다.
결과값을 보면 short의 최대값은 32767이라고 나오지만, 앞에 unsigned를 붙여 선언하게 되면 0 ~ 65535 까지 저장할 수 있다.
만약 결과값이 자료형의 최대값 보다 크다면 overflow로인해 엉뚱한 값이 출력될 것이다.
#include <iostream> #include <climits> using namespace std; int main() { short a = 55555; cout << "a 값 : " << a << endl; return 0; }
위 코드의 실행 결과이다. 앞서 말한거처럼 a의 최대값은 32767인데 a값은 55555이기때문에 엉뚱한 값이 출력됐다.
이 값을 출력하기 위해 더 넓은 범위를 가진 int형으로 자료형을 바꾸거나, short앞에 unsigned를 붙이면 된다.
추가로 실수형은 소수부가 있는 수로
#include <iostream> #include <climits> using namespace std; int main() { float a = 3.14; int b = 3.14; cout << a << " " << b << endl; return 0; }
출력하면 3.14 , 3이 출력될 것이다. int는 정수형이기 때문이다.
'C++' 카테고리의 다른 글
C++ 배열과 char 문자열 (0) 2025.03.18 C++ 변수 (4) (0) 2025.03.17 C++ 변수 (3) (0) 2025.03.17 C++ 변수 (1) (0) 2025.03.17 C++ <iostream> 전처리 지시자 (0) 2025.03.17