모두 변수 선언 중에 데이터 유형을 사용하여 저장할 데이터 유형을 제한합니다. 따라서 데이터 유형은 변수에 저장할 수 있는 데이터 유형을 알려주는 데 사용된다고 말할 수 있습니다. C++에서 변수가 정의될 때마다 컴파일러는 선언된 데이터 유형에 따라 해당 변수에 일부 메모리를 할당합니다. 모든 데이터 유형에는 서로 다른 양의 메모리가 필요합니다.
C++는 다양한 데이터 유형을 지원하며 프로그래머는 애플리케이션의 요구에 적합한 데이터 유형을 선택할 수 있습니다. 데이터 유형은 저장할 값의 크기와 유형을 지정합니다. 그러나 각 데이터 유형을 조작하기 위한 저장소 표현과 기계 명령어는 기계마다 다르지만 C++ 명령어는 모든 기계에서 동일합니다.
C++에서는 다음 데이터 유형을 지원합니다.
- 주요한 또는 내장 또는 기본 데이터 유형
- 파생 데이터 유형
- 사용자 정의 데이터 유형
C++의 데이터 유형은 주로 3가지 유형으로 나뉩니다.
1. 원시 데이터 유형 : 이러한 데이터 유형은 내장되거나 미리 정의된 데이터 유형이며 사용자가 변수를 선언하기 위해 직접 사용할 수 있습니다. 예: int, char, float, bool 등 C++에서 사용할 수 있는 기본 데이터 유형은 다음과 같습니다.
- 정수
- 성격
- 부울
- 부동 소수점
- 이중 부동 소수점
- 무가치하거나 공허하다
- 와이드 캐릭터
2. 파생 데이터 유형: 기능
3. 추상 또는 사용자 정의 데이터 유형 : 수업
기본 데이터 유형
- 정수 : 정수 데이터 유형에 사용되는 키워드는 다음과 같습니다. 정수 . 정수에는 일반적으로 4바이트의 메모리 공간이 필요하며 범위는 -2147483648에서 2147483647입니다.
- 성격 : 문자 데이터 유형은 문자를 저장하는 데 사용됩니다. 문자 데이터 유형에 사용되는 키워드는 다음과 같습니다. 숯 . 문자에는 일반적으로 1바이트의 메모리 공간이 필요하며 범위는 -128~127 또는 0~255입니다.
- 부울 : 부울(Boolean) 데이터 유형은 부울 또는 논리값을 저장하는 데 사용됩니다. 부울 변수는 다음 중 하나를 저장할 수 있습니다. 진실 또는 거짓 . 부울 데이터 유형에 사용되는 키워드는 다음과 같습니다. 부울 .
- 부동 소수점 : 부동 소수점 데이터 유형은 단정밀도 부동 소수점 값 또는 소수 값을 저장하는 데 사용됩니다. 부동 소수점 데이터 유형에 사용되는 키워드는 다음과 같습니다. 뜨다 . Float 변수는 일반적으로 4바이트의 메모리 공간이 필요합니다.
- 이중 부동 소수점 : Double Floating Point 데이터 유형은 배정밀도 부동 소수점 값 또는 소수 값을 저장하는 데 사용됩니다. 이중 부동 소수점 데이터 유형에 사용되는 키워드는 다음과 같습니다. 더블 . 이중 변수에는 일반적으로 8바이트의 메모리 공간이 필요합니다.
- 무효의 : 무효란 아무런 가치도 없다는 뜻입니다. void 데이터 유형은 가치가 없는 엔터티를 나타냅니다. 값을 반환하지 않는 함수에는 void 데이터 유형이 사용됩니다.
- 수업
- 와이드 캐릭터 : 와이드 문자 데이터 유형도 문자 데이터 유형이지만 이 데이터 유형은 일반 8비트 데이터 유형보다 크기가 더 큽니다. 대표자 wchar_t . 일반적으로 길이는 2 또는 4바이트입니다.
- sizeof() 연산자: sizeof() 연산자 컴퓨터 메모리에서 변수/데이터 유형이 차지하는 바이트 수를 찾는 데 사용됩니다.
예:
int m , x[50];
cout<
cout<
변수의 크기는 사용하는 컴파일러와 컴퓨터에 따라 위 표에 표시된 것과 다를 수 있습니다.
C++
// C++ Program to Demonstrate the correct size> // of various data types on your computer.> #include> using> namespace> std;> int> main()> {> > cout <<> 'Size of char : '> <<> sizeof> (> char> ) << endl;> > cout <<> 'Size of int : '> <<> sizeof> (> int> ) << endl;> > cout <<> 'Size of long : '> <<> sizeof> (> long> ) << endl;> > cout <<> 'Size of float : '> <<> sizeof> (> float> ) << endl;> > cout <<> 'Size of double : '> <<> sizeof> (> double> ) << endl;> > return> 0;> }> |
>
>산출
Size of char : 1 Size of int : 4 Size of long : 8 Size of float : 4 Size of double : 8>
시간 복잡도: 오(1)
공간 복잡도: 오(1)
데이터 유형 수정자
이름에서 알 수 있듯이 데이터 유형 수정자는 내장 데이터 유형과 함께 사용되어 특정 데이터 유형이 보유할 수 있는 데이터 길이를 수정합니다.
C++에서 사용할 수 있는 데이터 유형 수정자는 다음과 같습니다.
- 서명됨
- 서명되지 않음
- 짧은
- 긴
아래 표에는 유형 수정자와 결합될 때 내장 데이터 유형의 수정된 크기와 범위가 요약되어 있습니다.
데이터 형식 | 크기(바이트) | 범위 |
---|---|---|
짧은 정수 | 2 | -32,768~32,767 |
부호 없는 짧은 정수 | 2 | 0~65,535 |
부호 없는 정수 | 4 | 0~4,294,967,295 |
정수 | 4 | -2,147,483,648 ~ 2,147,483,647 엑셀 날짜 차이 |
긴 정수 | 4 | -2,147,483,648 ~ 2,147,483,647 |
부호 없는 긴 정수 | 4 | 0~4,294,967,295 |
긴 긴 정수 | 8 | -(2^63)에서 (2^63)-1 |
부호 없는 긴 긴 정수 | 8 | 0 ~ 18,446,744,073,709,551,615 |
서명된 문자 | 1 | -128~127 |
서명되지 않은 문자 | 1 | 0~255 |
뜨다 | 4 | -3.4×10^38 ~ 3.4×10^38 |
더블 | 8 | -1.7×10^308 ~ 1.7×10^308 |
긴 더블 | 12 | -1.1×10^4932 ~ 1.1×10^4932 |
wchar_t | 2 또는 4 | 와이드 문자 1개 |
메모 : 위의 값은 컴파일러마다 다를 수 있습니다. 위의 예에서는 GCC 32비트를 고려했습니다.
아래와 같이 sizeof() 연산자를 사용하고 데이터 유형의 키워드를 이 함수에 대한 인수로 전달하여 모든 데이터 유형의 크기를 표시할 수 있습니다.
이제 데이터 유형의 범위를 얻으려면 다음 차트를 참조하십시오.
참고: 구문 헤더 파일은 기본 데이터 유형의 범위를 찾기 위해 정의됩니다. 부호 없는 수정자의 최소값은 0입니다. 따라서 부호 없는 최소값에 대해서는 매크로 상수가 정의되지 않습니다.
매크로 상수
이름 | 표현하다 |
---|---|
CHAR_MIN | char 유형 객체의 최소값 |
CHAR_MAX | char 유형 객체의 최대값 |
SCHAR_MIN | Signed char 유형의 객체에 대한 최소값 |
SCHAR_MAX | Signed char 유형의 객체에 대한 최대값 |
FLIGHT_MAX | Unsigned char 유형의 객체에 대한 최대값 |
CHAR_BIT | char 객체의 비트 수 |
MB_LEN_MAX | 멀티바이트 문자의 최대 바이트 수 |
SHRT_MIN | short int 유형의 객체에 대한 최소값 |
SHRT_MAX | short int 유형의 객체에 대한 최대값 |
USHRT_MAX | Unsigned short int 유형의 객체에 대한 최대값 |
INT_MIN | int 유형의 객체에 대한 최소값 |
INT_MAX | int 유형의 객체에 대한 최대값 |
UINT_MAX | Unsigned int 유형의 객체에 대한 최대값 |
LONG_MIN | long int 유형의 객체에 대한 최소값 |
LONG_MAX | long int 유형의 객체에 대한 최대값 |
HEAD_MAX | Unsigned long int 유형의 객체에 대한 최대값 |
SHIP_MIN | long long int 유형의 객체에 대한 최소값 |
LLONG_MAX | long long int 유형의 객체에 대한 최대값 |
ULLONG_MAX | Unsigned long long int 유형의 객체에 대한 최대값 |
실제 값은 특정 시스템 및 라이브러리 구현에 따라 다르지만 대상 플랫폼에서 이러한 유형의 제한을 반영해야 합니다. LLONG_MIN, LLONG_MAX 및 ULLONG_MAX는 1999년 이후의 C 표준(2011년 이후의 C++ 표준: C++11만 포함)을 준수하는 라이브러리에 대해 정의됩니다.
매크로 상수를 사용하여 데이터 유형의 범위를 찾는 C++ 프로그램
예:
C++
// C++ program to Demonstrate the sizes of data types> #include> #include> using> namespace> std;> int> main()> {> > cout <<> 'Size of char : '> <<> sizeof> (> char> ) <<> ' byte'> > << endl;> > cout <<> 'char minimum value: '> << CHAR_MIN << endl;> > cout <<> 'char maximum value: '> << CHAR_MAX << endl;> > cout <<> 'Size of int : '> <<> sizeof> (> int> ) <<> ' bytes'> > << endl;> > cout <<> 'Size of short int : '> <<> sizeof> (> short> int> )> > <<> ' bytes'> << endl;> > cout <<> 'Size of long int : '> <<> sizeof> (> long> int> )> > <<> ' bytes'> << endl;> > cout <<> 'Size of signed long int : '> > <<> sizeof> (> signed> long> int> ) <<> ' bytes'> << endl;> > cout <<> 'Size of unsigned long int : '> > <<> sizeof> (unsigned> long> int> ) <<> ' bytes'> << endl;> > cout <<> 'Size of float : '> <<> sizeof> (> float> ) <<> ' bytes'> > << endl;> > cout <<> 'Size of double : '> <<> sizeof> (> double> )> > <<> ' bytes'> << endl;> > cout <<> 'Size of wchar_t : '> <<> sizeof> (> wchar_t> )> > <<> ' bytes'> << endl;> > return> 0;> }> |
>
>산출
Size of char : 1 byte char minimum value: -128 char maximum value: 127 Size of int : 4 bytes Size of short int : 2 bytes Size of long int : 8 bytes Size of signed long int : 8 bytes Size of unsigned long int : 8 bytes Size of float : 4 bytes Size of double : 8 bytes Size of wchar_t : 4 bytes>
시간 복잡도: 오(1)
공간 복잡도: 오(1)
C++
#include> #include> using> namespace> std;> int> main() {> > // Integer data types> > int> a = 10;> > short> b = 20;> > long> c = 30;> > long> long> d = 40;> > cout <<> 'Integer data types: '> << endl;> > cout <<> 'int: '> << a << endl;> > cout <<> 'short: '> << b << endl;> > cout <<> 'long: '> << c << endl;> > cout <<> 'long long: '> << d << endl;> > > // Floating-point data types> > float> e = 3.14f;> > double> f = 3.141592;> > long> double> g = 3.14159265358979L;> > cout <<> 'Floating-point data types: '> << endl;> > cout <<> 'float: '> << e << endl;> > cout <<> 'double: '> << f << endl;> > cout <<> 'long double: '> << g << endl;> > > // Character data types> > char> h => 'a'> ;> > wchar_t> i = L> 'b'> ;> > char16_t j = u> 'c'> ;> > char32_t k = U> 'd'> ;> > cout <<> 'Character data types: '> << endl;> > cout <<> 'char: '> << h << endl;> > wcout <<> 'wchar_t: '> << i << endl;> > cout <<> 'char16_t: '> << j << endl;> > cout <<> 'char32_t: '> << k << endl;> > > // Boolean data type> > bool> l => true> ;> > bool> m => false> ;> > cout <<> 'Boolean data type: '> << endl;> > cout <<> 'true: '> << l << endl;> > cout <<> 'false: '> << m << endl;> > > // String data type> > string n => 'Hello, world!'> ;> > cout <<> 'String data type: '> << endl;> > cout << n << endl;> > > return> 0;> }> |
>
>산출
Integer data types: int: 10 short: 20 long: 30 long long: 40 Floating-point data types: float: 3.14 double: 3.14159 long double: 3.14159 Character data types: char: a wchar_t: b char16_t: 99 char32_t: 100 Boolean data type: true: 1 false: 0 String data type: Hello, world!>
이 프로그램은 다양한 데이터 유형의 변수를 선언하고 값을 할당한 다음 해당 값을 인쇄합니다.
정수 데이터 유형에는 int, short, long 및 long long이 포함됩니다. 이러한 데이터 유형은 다양한 크기의 정수를 나타냅니다.
부동 소수점 데이터 유형에는 float, double 및 long double이 포함됩니다. 이러한 데이터 유형은 다양한 수준의 정밀도로 실수를 나타냅니다.
문자 데이터 유형에는 char, wchar_t, char16_t 및 char32_t가 포함됩니다. 이러한 데이터 유형은 다양한 크기의 개별 문자를 나타냅니다.
부울 데이터 유형은 true 또는 false 두 가지 값 중 하나만 가질 수 있는 단순 데이터 유형입니다.
문자열 데이터 유형은 일련의 문자입니다. 이 프로그램에서는 문자열 클래스를 사용하여 문자열 변수를 선언하고 값을 할당합니다.
장점 :
데이터 유형은 프로그램에서 데이터를 분류하고 구성하는 방법을 제공하므로 더 쉽게 이해하고 관리할 수 있습니다.
각 데이터 유형에는 보유할 수 있는 특정 범위의 값이 있으므로 저장되는 데이터 유형을 보다 정확하게 제어할 수 있습니다.
데이터 유형은 데이터를 사용하고 조작하는 방법에 대한 엄격한 규칙을 적용하여 프로그램의 오류와 버그를 방지하는 데 도움이 됩니다.
C++는 광범위한 데이터 유형을 제공하므로 개발자는 특정 작업에 가장 적합한 유형을 선택할 수 있습니다.
단점 :
잘못된 데이터 유형을 사용하면 프로그램에서 예기치 않은 동작과 오류가 발생할 수 있습니다.
long double 또는 char 배열과 같은 일부 데이터 유형은 과도하게 사용할 경우 많은 양의 메모리를 차지하고 성능에 영향을 줄 수 있습니다.
C++의 복잡한 유형 시스템은 초보자가 언어를 효과적으로 배우고 사용하는 것을 어렵게 만들 수 있습니다.
데이터 유형을 사용하면 프로그램이 더욱 복잡해지고 장황해져서 읽고 이해하기가 더 어려워질 수 있습니다.