logo

C++ datu tipi

Visi mainīgie deklarēšanas laikā izmantojiet datu tipu, lai ierobežotu glabājamo datu veidu. Tāpēc mēs varam teikt, ka datu tipi tiek izmantoti, lai norādītu mainīgajiem, kāda veida datus tie var uzglabāt. Ikreiz, kad mainīgais ir definēts C++, kompilators šim mainīgajam piešķir daļu atmiņas, pamatojoties uz datu tipu, ar kuru tas ir deklarēts. Katram datu veidam ir nepieciešams atšķirīgs atmiņas apjoms.

C++ atbalsta dažādus datu tipus, un programmētājs var izvēlēties datu tipu, kas atbilst lietojumprogrammas vajadzībām. Datu tipi norāda saglabājamo vērtību lielumu un veidus. Tomēr krātuves attēlojums un mašīnas instrukcijas, lai manipulētu ar katru datu tipu, dažādās iekārtās atšķiras, lai gan C++ instrukcijas visās iekārtās ir identiskas.

C++ atbalsta šādus datu tipus:



  1. Primārs vai Iebūvēts vai Pamatdatu tips
  2. Atvasinātie datu veidi
  3. Lietotāja definēti datu veidi

Datu tipi programmā C++

C++ datu tipi galvenokārt ir sadalīti 3 veidos:

1. Primitīvie datu tipi : šie datu tipi ir iebūvēti vai iepriekš definēti datu tipi, un lietotājs tos var tieši izmantot, lai deklarētu mainīgos. piemērs: int, char, float, bool utt. Primitīvie datu veidi, kas pieejami C++, ir:

  • Vesels skaitlis
  • Raksturs
  • Būla
  • Peldošais punkts
  • Dubultais peldošais punkts
  • Bezvērtīgs vai tukšs
  • Plašs raksturs

2. Atvasinātie datu veidi: Funkcija

  • Masīvs
  • Rādītājs
  • Atsauce
  • 3. Abstraktie vai lietotāja definētie datu tipi : Klase

  • Struktūra

  • Klase
  • savienība
  • Klase
  • Uzskaitījums
  • Typedef definēts datu tips
  • Primitīvie datu tipi

      Klase
    • Vesels skaitlis : veselu skaitļu datu tipiem izmantotais atslēgvārds ir starpt . Veseliem skaitļiem parasti ir nepieciešami 4 baiti atmiņas vietas, un tie ir diapazonā no -2147483648 līdz 2147483647.
    • Raksturs : rakstzīmju datu tips tiek izmantots rakstzīmju glabāšanai. Rakstzīmju datu tipam izmantotais atslēgvārds ir char . Rakstzīmēm parasti ir nepieciešams 1 baits atmiņas vietas, un tās ir diapazonā no -128 līdz 127 vai 0 līdz 255.
    • Būla : Būla datu tips tiek izmantots Būla vai loģisko vērtību glabāšanai. Būla mainīgais var saglabāt jebkuru no tiem taisnība vai viltus . Būla datu tipam izmantotais atslēgvārds ir bool .
    • Peldošais punkts : peldošā komata datu tips tiek izmantots vienas precizitātes peldošā komata vērtību vai decimālo vērtību glabāšanai. Peldošā komata datu tipam izmantotais atslēgvārds ir peldēt . Pludinātajiem mainīgajiem parasti ir nepieciešami 4 baiti atmiņas vietas.
    • Dubultais peldošais punkts : Dubultā peldošā komata datu tips tiek izmantots dubultas precizitātes peldošā komata vērtību vai decimālo vērtību glabāšanai. Dubultā peldošā komata datu tipam izmantotais atslēgvārds ir dubultā . Dubultajiem mainīgajiem parasti ir nepieciešami 8 baiti atmiņas vietas.
    • nederīgs : Nederīgs nozīmē bez vērtības. Void datu tips apzīmē bezvērtīgu entītiju. Nederīgs datu tips tiek izmantots tām funkcijām, kuras neatgriež vērtību.
    • Klase
    • Plašs raksturs : Plašs raksturs datu tips ir arī rakstzīmju datu tips, taču šī datu tipa izmērs ir lielāks nekā parastajam 8 bitu datu tipam. Pārstāvēts wchar_t . Parasti tas ir 2 vai 4 baiti garš.
    • operatora() lielums: operatora lielums(). tiek izmantots, lai atrastu baitu skaitu, ko datora atmiņā aizņem mainīgais/datu tips.

    Piemērs:

    int m , x[50];

    cout<

    cout<

    Mainīgo lielums var atšķirties no iepriekš tabulā norādītajiem atkarībā no kompilatora un izmantotā datora.

    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;> }>

    >

    >

    Izvade

    Size of char : 1 Size of int : 4 Size of long : 8 Size of float : 4 Size of double : 8>

    Laika sarežģītība: O(1)

    Kosmosa sarežģītība: O(1)

    Datu tipu modifikatori

    Kā norāda nosaukums, datu tipu modifikatori tiek izmantoti kopā ar iebūvētajiem datu tipiem, lai mainītu datu garumu, ko var saturēt noteikts datu tips.

    Modifikatori programmā C++

    C++ pieejamie datu tipu modifikatori ir:

    • Parakstīts
    • Neparakstīts
    • Īss
    • Garš

    Tālāk esošajā tabulā ir apkopots modificētais iebūvēto datu tipu lielums un diapazons, ja tos apvieno ar tipa modifikatoriem:

    Datu tips

    Izmērs (baitos)

    Diapazons

    īss int

    2

    -32 768 līdz 32 767

    neparakstīts īss int

    2

    0 līdz 65 535

    neparakstīts int

    4

    0 līdz 4 294 967 295

    starpt

    4

    -2 147 483 648 līdz 2 147 483 647

    cast sql

    garš int

    4

    -2 147 483 648 līdz 2 147 483 647

    neparakstīts garš int

    4

    0 līdz 4 294 967 295

    garš garš int

    8

    -(2^63) līdz (2^63)-1

    neparakstīts garš garš int

    8

    0 līdz 18 446 744 073 709 551 615

    parakstīts char

    1

    -128 līdz 127

    neparakstīts raksts

    1

    0 līdz 255

    peldēt

    4

    -3,4 × 10^38 līdz 3,4 × 10^38

    dubultā

    8

    -1,7 × 10^308 līdz 1,7 × 10^308

    garš dubultā

    12

    -1,1 × 10^4932 līdz 1,1 × 10^4932

    wchar_t

    2 vai 4

    1 plata rakstzīme

    Piezīme : Iepriekš minētās vērtības var atšķirties atkarībā no kompilatora. Iepriekš minētajā piemērā mēs esam apsvēruši GCC 32 bitu.
    Mēs varam parādīt visu datu tipu lielumu, izmantojot operatoru sizeof() un nododot datu tipa atslēgvārdu kā argumentu šai funkcijai, kā parādīts zemāk:

    Tagad, lai iegūtu datu tipu diapazonu, skatiet šo diagrammu

    Piezīme: sintakse galvenes fails ir definēts, lai atrastu pamata datu tipu diapazonu. Neparakstītiem modifikatoriem minimālā vērtība ir nulle. Tātad neparakstītajai minimālajai vērtībai nav noteiktas makro konstantes.

    Makro konstantes

    Vārds

    Izsaka

    CHAR_MIN

    Minimālā vērtība objektam, kura tips ir char

    CHAR_MAX

    Maksimālā vērtība objektam, kura tips ir char

    SCHAR_MIN

    Minimālā vērtība objektam, kura tips ir Signed char

    SCHAR_MAX

    Maksimālā vērtība objektam, kura tips ir Signed char

    FLIGHT_MAX

    Maksimālā vērtība objektam, kura tips ir Unsigned char

    CHAR_BIT

    Bitu skaits char objektā

    MB_LEN_MAX

    Maksimālais baitu skaits vairāku baitu rakstzīmē

    SHRT_MIN

    Minimālā vērtība objektam, kura veids ir short int

    SHRT_MAX

    Maksimālā vērtība objektam, kura veids ir short int

    USHRT_MAX

    Maksimālā vērtība objektam, kura tips ir Neparakstīts short int

    INT_MIN

    Minimālā vērtība objektam, kura tips ir int

    INT_MAX

    Maksimālā vērtība objektam, kura tips ir int

    UINT_MAX

    Maksimālā vērtība objektam, kura tips ir Unsigned int

    LONG_MIN

    Minimālā vērtība objektam, kura tips ir long int

    LONG_MAX

    Maksimālā vērtība objektam, kura tips ir long int

    HEAD_MAX

    Maksimālā vērtība objektam, kura tips ir Unsigned long int

    SHIP_MIN

    Minimālā vērtība objektam tipa long long int

    LLONG_MAX

    Maksimālā vērtība objektam tipa long long int

    ULLONG_MAX

    Maksimālā vērtība objektam, kura tips ir Unsigned long long int

    Faktiskā vērtība ir atkarīga no konkrētās sistēmas un bibliotēkas ieviešanas, taču tai jāatspoguļo šo tipu ierobežojumi mērķa platformā. LLONG_MIN, LLONG_MAX un ULLONG_MAX ir definēti bibliotēkām, kas atbilst C standartam 1999. gadā vai jaunākam (kas ietver tikai C++ standartu kopš 2011. gada: C++11).

    C++ programma, lai atrastu datu tipu diapazonu, izmantojot makrokonstantes

    Piemērs:

    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;> }>

    >

    >

    Izvade

    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>

    Laika sarežģītība: O(1)

    Kosmosa sarežģītība: O(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;> }>

    >

    >

    Izvade

    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!>

    Šī programma deklarē dažādu datu tipu mainīgos, piešķir tiem vērtības un pēc tam izdrukā to vērtības.

    Veselu skaitļu datu tipi ietver int, īsu, garu un garu garu. Šie datu veidi atspoguļo veselus dažāda lieluma skaitļus.

    Peldošā komata datu tipi ietver peldošo, dubulto un garo dubulto. Šie datu veidi atspoguļo reālus skaitļus ar dažādu precizitātes līmeni.

    Rakstzīmju datu tipi ietver char, wchar_t, char16_t un char32_t. Šie datu tipi apzīmē atsevišķas dažāda lieluma rakstzīmes.

    Būla datu tips ir vienkāršs datu tips, kuram var būt tikai viena no divām vērtībām: patiesa vai nepatiesa.

    Virknes datu tips ir rakstzīmju secība. Šajā programmā mēs izmantojam virknes klasi, lai deklarētu virknes mainīgo un piešķirtu tam vērtību.

    Priekšrocības :

    Datu veidi nodrošina veidu, kā programmā datus klasificēt un kārtot, padarot tos vieglāk saprotamus un pārvaldāmus.
    Katram datu tipam ir noteikts vērtību diapazons, ko tas var saturēt, ļaujot precīzāk kontrolēt glabājamo datu veidu.
    Datu tipi palīdz novērst kļūdas un kļūdas programmā, ieviešot stingrus noteikumus par to, kā datus var izmantot un apstrādāt.
    C++ nodrošina plašu datu tipu klāstu, ļaujot izstrādātājiem izvēlēties labāko veidu konkrētam uzdevumam.

    Trūkumi :

    Nepareiza datu veida izmantošana var izraisīt neparedzētu uzvedību un kļūdas programmā.
    Daži datu tipi, piemēram, garie dubultojumi vai rakstzīmju masīvi, var aizņemt daudz atmiņas un ietekmēt veiktspēju, ja tos izmanto pārmērīgi.
    C++ sarežģītā tipa sistēma iesācējiem var apgrūtināt valodas apguvi un efektīvu lietošanu.
    Datu tipu izmantošana programmai var radīt papildu sarežģītību un detalizētību, padarot to grūtāk lasāmu un saprotamu.