logo

C++ 데이터 유형

모두 변수 선언 중에 데이터 유형을 사용하여 저장할 데이터 유형을 제한합니다. 따라서 데이터 유형은 변수에 저장할 수 있는 데이터 유형을 알려주는 데 사용된다고 말할 수 있습니다. C++에서 변수가 정의될 ​​때마다 컴파일러는 선언된 데이터 유형에 따라 해당 변수에 일부 메모리를 할당합니다. 모든 데이터 유형에는 서로 다른 양의 메모리가 필요합니다.

C++는 다양한 데이터 유형을 지원하며 프로그래머는 애플리케이션의 요구에 적합한 데이터 유형을 선택할 수 있습니다. 데이터 유형은 저장할 값의 크기와 유형을 지정합니다. 그러나 각 데이터 유형을 조작하기 위한 저장소 표현과 기계 명령어는 기계마다 다르지만 C++ 명령어는 모든 기계에서 동일합니다.



C++에서는 다음 데이터 유형을 지원합니다.

  1. 주요한 또는 내장 또는 기본 데이터 유형
  2. 파생 데이터 유형
  3. 사용자 정의 데이터 유형

C++의 데이터 유형

C++의 데이터 유형은 주로 3가지 유형으로 나뉩니다.

1. 원시 데이터 유형 : 이러한 데이터 유형은 내장되거나 미리 정의된 데이터 유형이며 사용자가 변수를 선언하기 위해 직접 사용할 수 있습니다. 예: int, char, float, bool 등 C++에서 사용할 수 있는 기본 데이터 유형은 다음과 같습니다.



  • 정수
  • 성격
  • 부울
  • 부동 소수점
  • 이중 부동 소수점
  • 무가치하거나 공허하다
  • 와이드 캐릭터

2. 파생 데이터 유형: 기능

  • 정렬
  • 바늘
  • 참조
  • 3. 추상 또는 사용자 정의 데이터 유형 : 수업

  • 구조

  • 수업
  • 노동 조합
  • 수업
  • 열거
  • Typedef 정의 데이터 유형
  • 기본 데이터 유형

    예:

    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++의 수정자

    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++의 복잡한 유형 시스템은 초보자가 언어를 효과적으로 배우고 사용하는 것을 어렵게 만들 수 있습니다.
    데이터 유형을 사용하면 프로그램이 더욱 복잡해지고 장황해져서 읽고 이해하기가 더 어려워질 수 있습니다.