logo

C++ tietotyypit

Kaikki muuttujia käytä tietotyyppiä ilmoittamisen aikana rajoittaaksesi tallennettavien tietojen tyyppiä. Siksi voimme sanoa, että tietotyyppejä käytetään kertomaan muuttujille, minkä tyyppistä dataa ne voivat tallentaa. Aina kun muuttuja määritellään C++:ssa, kääntäjä varaa tälle muuttujalle muistia sen tietotyypin perusteella, jolla se on ilmoitettu. Jokainen tietotyyppi vaatii eri määrän muistia.

C++ tukee monenlaisia ​​tietotyyppejä ja ohjelmoija voi valita sovelluksen tarpeisiin sopivan tietotyypin. Tietotyypit määrittelevät tallennettavien arvojen koon ja tyypit. Kuitenkin tallennusesitys ja koneen ohjeet kunkin tietotyypin käsittelemiseksi vaihtelevat koneittain, vaikka C++-ohjeet ovat samat kaikissa koneissa.

C++ tukee seuraavia tietotyyppejä:



  1. Ensisijainen tai Sisäänrakennettu tai Perustietotyyppi
  2. Johdetut tietotyypit
  3. Käyttäjän määrittämät tietotyypit

Tietotyypit C++:ssa

C++:n tietotyypit jaetaan pääasiassa kolmeen tyyppiin:

1. Primitiiviset tietotyypit : Nämä tietotyypit ovat sisäänrakennettuja tai ennalta määritettyjä tietotyyppejä, ja käyttäjä voi käyttää niitä suoraan muuttujien ilmoittamiseen. esimerkki: int, char, float, bool jne. C++:ssa saatavilla olevat primitiiviset tietotyypit ovat:

  • Kokonaisluku
  • Merkki
  • Boolean
  • Floating Point
  • Kaksinkertainen liukuluku
  • Arvoton tai tyhjä
  • Leveä hahmo

2. Johdetut tietotyypit: Toiminto

  • Array
  • Osoitin
  • Viite
  • 3. Abstraktit tai käyttäjän määrittämät tietotyypit : Luokka

  • Rakenne

  • Luokka
  • liitto
  • Luokka
  • Luettelo
  • Typedef määritelty tietotyyppi
  • Primitiiviset tietotyypit

      Luokka
    • Kokonaisluku : Kokonaislukutietotyypeissä käytetty avainsana on int . Kokonaisluvut vaativat yleensä 4 tavua muistitilaa ja vaihtelevat välillä -2147483648 - 2147483647.
    • Merkki : Merkkien tietotyyppiä käytetään merkkien tallentamiseen. Merkkitietotyypin avainsana on hiiltyä . Merkit vaativat tyypillisesti 1 tavun muistitilaa ja vaihtelevat välillä -128 - 127 tai 0 - 255.
    • Boolean : Boolen tietotyyppiä käytetään Boolen tai loogisten arvojen tallentamiseen. Boolen muuttuja voi tallentaa kumman tahansa totta tai väärä . Boolen tietotyypin avainsana on bool .
    • Liukuluku : Liukulukutietotyyppiä käytetään yksittäisen tarkkuuden liukuluku- tai desimaaliarvojen tallentamiseen. Liukulukutietotyypin avainsana on kellua . Float-muuttujat vaativat tyypillisesti 4 tavua muistitilaa.
    • Kaksinkertainen liukuluku : Double Floating Point -tietotyyppiä käytetään kaksinkertaisen tarkkuuden liukulukuarvojen tai desimaaliarvojen tallentamiseen. Kaksinkertaisen liukulukutietotyypin avainsana on kaksinkertainen . Kaksinkertaiset muuttujat vaativat tyypillisesti 8 tavua muistitilaa.
    • mitätön : Void tarkoittaa ilman arvoa. void datatyyppi edustaa arvotonta kokonaisuutta. Void-tietotyyppiä käytetään niille funktioille, jotka eivät palauta arvoa.
    • Luokka
    • Leveä hahmo : Leveä luonne tietotyyppi on myös merkkitietotyyppi, mutta tämän tietotyypin koko on suurempi kuin tavallisen 8-bittisen tietotyypin. Edustaja wchar_t . Se on yleensä 2 tai 4 tavua pitkä.
    • sizeof()-operaattori: sizeof()-operaattori käytetään etsimään muuttujan/tietotyypin käyttämien tavujen lukumäärä tietokoneen muistissa.

    Esimerkki:

    int m, x[50];

    cout<

    cout<

    Muuttujien koko saattaa poiketa yllä olevassa taulukossa esitetyistä kääntäjästä ja käyttämästäsi tietokoneesta riippuen.

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

    >

    >

    Lähtö

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

    Aika monimutkaisuus: O(1)

    Tilan monimutkaisuus: O(1)

    Tietotyyppien muuntajat

    Kuten nimestä voi päätellä, tietotyyppimuuntajia käytetään sisäänrakennettujen tietotyyppien kanssa muokkaamaan datan pituutta, jonka tietty tietotyyppi voi sisältää.

    Muokkaimet C++:ssa

    C++:ssa saatavilla olevat tietotyyppimuuntimet ovat:

    • Allekirjoitettu
    • Allekirjoittamaton
    • Lyhyt
    • Pitkä

    Alla olevassa taulukossa on yhteenveto sisäänrakennettujen tietotyyppien muokatusta koosta ja valikoimasta yhdistettynä tyyppimuuntajiin:

    Tietotyyppi

    Koko (tavuina)

    Alue

    lyhyt int

    2

    -32 768 - 32 767

    allekirjoittamaton lyhyt väliv

    2

    0 - 65 535

    allekirjoittamaton int

    4

    0 - 4 294 967 295

    int

    4

    -2 147 483 648 - 2 147 483 647

    if-else lauseke java

    pitkä int

    4

    -2 147 483 648 - 2 147 483 647

    allekirjoittamaton pitkä välit

    4

    0 - 4 294 967 295

    pitkä pitkä int

    8

    -(2^63) - (2^63)-1

    allekirjoittamaton pitkä pitkä int

    8

    0 - 18 446 744 073 709 551 615

    allekirjoitettu char

    1

    -128-127

    allekirjoittamaton merkki

    1

    0-255

    kellua

    4

    -3,4 × 10^38 - 3,4 × 10^38

    kaksinkertainen

    8

    -1,7 × 10^308 - 1,7 × 10^308

    pitkä tupla

    12

    -1,1 × 10^4932 - 1,1 × 10^4932

    wchar_t

    2 tai 4

    1 leveä merkki

    Huomautus : Yllä olevat arvot voivat vaihdella kääntäjästä toiseen. Yllä olevassa esimerkissä olemme tarkastelleet GCC 32-bittistä.
    Voimme näyttää kaikkien tietotyyppien koon käyttämällä sizeof()-operaattoria ja välittämällä tietotyypin avainsanan argumenttina tälle funktiolle alla esitetyllä tavalla:

    Katso seuraavasta kaaviosta tietotyyppien valikoima

    Huomautus: syntaksi otsikkotiedosto on määritetty etsimään perustietotyyppien valikoima. Etumerkittömien modifioijien vähimmäisarvo on nolla. Etumerkittömille minimiarvoille ei siis ole määritetty makrovakioita.

    Makrovakiot

    Nimi

    Ilmaisee

    CHAR_MIN

    char-tyypin objektin vähimmäisarvo

    CHAR_MAX

    Suurin arvo objektille, jonka tyyppi on char

    SCHAR_MIN

    Signed char -tyypin objektin vähimmäisarvo

    SCHAR_MAX

    Suurin arvo objektille, jonka tyyppi on Signed char

    FLIGHT_MAX

    Enimmäisarvo objektille, jonka tyyppi on Unsigned char

    CHAR_BIT

    Bittien määrä char-objektissa

    MB_LEN_MAX

    Tavujen enimmäismäärä monitavuisessa merkissä

    SHRT_MIN

    Short int -tyypin objektin vähimmäisarvo

    SHRT_MAX

    Suurin arvo objektille, jonka tyyppi on short int

    USHRT_MAX

    Suurin arvo objektille, jonka tyyppi on Unsigned short int

    INT_MIN

    Int-tyypin objektin vähimmäisarvo

    INT_MAX

    Maksimiarvo objektille, jonka tyyppi on int

    UINT_MAX

    Suurin arvo objektille, jonka tyyppi on Unsigned int

    LONG_MIN

    Vähimmäisarvo objektille, jonka tyyppi on long int

    LONG_MAX

    Suurin arvo objektille, jonka tyyppi on long int

    HEAD_MAX

    Suurin arvo objektille, jonka tyyppi on Unsigned long int

    SHIP_MIN

    Vähimmäisarvo objektille, jonka tyyppi on long long int

    LLONG_MAX

    Suurin arvo objektille, jonka tyyppi on long long int

    ULLONG_MAX

    Enimmäisarvo objektille, jonka tyyppi on Unsigned long long int

    Todellinen arvo riippuu tietystä järjestelmästä ja kirjaston toteutuksesta, mutta sen tulee kuvastaa näiden tyyppien rajoja kohdealustassa. LLONG_MIN, LLONG_MAX ja ULLONG_MAX on määritelty kirjastoille, jotka noudattavat C-standardia vuodelta 1999 tai uudempaa (joka sisältää vain C++-standardin vuodesta 2011 lähtien: C++11).

    C++-ohjelma, joka etsii tietotyyppien alueen makrovakioiden avulla

    Esimerkki:

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

    >

    >

    Lähtö

    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>

    Aika monimutkaisuus: O(1)

    Tilan monimutkaisuus: 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;> }>

    >

    >

    Lähtö

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

    Tämä ohjelma ilmoittaa eri tietotyyppien muuttujat, antaa niille arvot ja tulostaa sitten niiden arvot.

    Kokonaislukutietotyyppejä ovat int, short, long ja long long. Nämä tietotyypit edustavat erikokoisia kokonaislukuja.

    Liukulukutietotyyppejä ovat float, double ja long double. Nämä tietotyypit edustavat reaalilukuja vaihtelevalla tarkkuudella.

    Merkkitietotyyppejä ovat char, wchar_t, char16_t ja char32_t. Nämä tietotyypit edustavat erikokoisia yksittäisiä merkkejä.

    Boolen tietotyyppi on yksinkertainen tietotyyppi, jolla voi olla vain toinen kahdesta arvosta: tosi tai epätosi.

    Merkkijonotietotyyppi on merkkijono. Tässä ohjelmassa käytämme merkkijonoluokkaa merkkijonomuuttujan ilmoittamiseen ja arvon määrittämiseen.

    Edut :

    Tietotyypit tarjoavat tavan luokitella ja järjestää ohjelman tiedot, mikä helpottaa niiden ymmärtämistä ja hallintaa.
    Jokaisella tietotyypillä on tietty arvoalue, jonka se voi sisältää, mikä mahdollistaa tallennettavien tietojen tyypin tarkemman hallinnan.
    Tietotyypit auttavat estämään ohjelman virheitä ja bugeja noudattamalla tiukkoja sääntöjä siitä, kuinka tietoja voidaan käyttää ja käsitellä.
    C++ tarjoaa laajan valikoiman tietotyyppejä, joiden avulla kehittäjät voivat valita parhaan tyypin tiettyyn tehtävään.

    Haitat :

    Väärän tietotyypin käyttö voi johtaa odottamattomaan toimintaan ja virheisiin ohjelmassa.
    Jotkin tietotyypit, kuten pitkät tupla- tai merkkitaulukot, voivat viedä paljon muistia ja heikentää suorituskykyä, jos niitä käytetään liikaa.
    C++:n monimutkainen tyyppijärjestelmä voi vaikeuttaa aloittelijoiden kielen oppimista ja tehokasta käyttöä.
    Tietotyyppien käyttö voi lisätä ohjelmaan monimutkaisuutta ja monimutkaisuutta, mikä vaikeuttaa sen lukemista ja ymmärtämistä.