logo

C++ datatyper

Alle variabler bruke datatype under deklarering for å begrense typen data som skal lagres. Derfor kan vi si at datatyper brukes til å fortelle variablene hvilken type data de kan lagre. Når en variabel er definert i C++, tildeler kompilatoren noe minne for den variabelen basert på datatypen den er deklarert med. Hver datatype krever en annen mengde minne.

C++ støtter et bredt utvalg av datatyper og programmereren kan velge datatypen som passer til applikasjonens behov. Datatyper spesifiserer størrelsen og typene av verdier som skal lagres. Lagringsrepresentasjon og maskininstruksjoner for å manipulere hver datatype varierer imidlertid fra maskin til maskin, selv om C++-instruksjoner er identiske på alle maskiner.

C++ støtter følgende datatyper:



  1. Hoved eller Innebygd eller Grunnleggende datatype
  2. Avledede datatyper
  3. Brukerdefinerte datatyper

Datatyper i C++

Datatyper i C++ er hovedsakelig delt inn i 3 typer:

1. Primitive datatyper : Disse datatypene er innebygde eller forhåndsdefinerte datatyper og kan brukes direkte av brukeren til å deklarere variabler. eksempel: int, char, float, bool osv. Primitive datatyper tilgjengelig i C++ er:

  • Heltall
  • Karakter
  • boolsk
  • Flytende punkt
  • Dobbelt flytende punkt
  • Verdiløs eller ugyldig
  • Bred karakter

2. Avledede datatyper: Funksjon

  • Array
  • Peker
  • Henvisning
  • 3. Abstrakte eller brukerdefinerte datatyper : Klasse

  • Struktur

  • Klasse
  • Union
  • Klasse
  • Oppregning
  • Typedef definert Datatype
  • Primitive datatyper

      Klasse
    • Heltall : Nøkkelordet som brukes for heltallsdatatyper er int . Heltall krever vanligvis 4 byte med minneplass og varierer fra -2147483648 til 2147483647.
    • Karakter : Tegndatatypen brukes til å lagre tegn. Nøkkelordet som brukes for karakterdatatypen er røye . Tegn krever vanligvis 1 byte med minneplass og varierer fra -128 til 127 eller 0 til 255.
    • boolsk : Boolsk datatype brukes til å lagre boolske eller logiske verdier. En boolsk variabel kan lagre enten ekte eller falsk . Nøkkelordet som brukes for den boolske datatypen er bool .
    • Flytende punkt : Flytpunktdatatypen brukes til å lagre flytende kommaverdier eller desimalverdier med én presisjon. Nøkkelordet som brukes for flyttallsdatatypen er flyte . Float-variabler krever vanligvis 4 byte med minneplass.
    • Dobbelt flytende punkt : Dobbel flytpunkt-datatype brukes til å lagre flytende kommaverdier eller desimalverdier med dobbel presisjon. Nøkkelordet som brukes for datatypen med doble flyttall er dobbelt . Doble variabler krever vanligvis 8 byte med minneplass.
    • tomrom : Ugyldig betyr uten verdi. void datatype representerer en verdiløs enhet. En void datatype brukes for de funksjonene som ikke returnerer en verdi.
    • Klasse
    • Bred karakter : Bred karakter datatypen er også en tegndatatype, men denne datatypen har en størrelse som er større enn den vanlige 8-biters datatypen. Representert av wchar_t . Den er vanligvis 2 eller 4 byte lang.
    • sizeof() operator: sizeof() operator brukes til å finne antall byte okkupert av en variabel/datatype i datamaskinens minne.

    Eksempel:

    int m , x[50];

    cout<

    cout<

    Størrelsen på variablene kan være forskjellig fra de som er vist i tabellen ovenfor, avhengig av kompilatoren og datamaskinen du bruker.

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

    >

    >

    Produksjon

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

    Tidskompleksitet: O(1)

    Plass kompleksitet: O(1)

    Datatypemodifikatorer

    Som navnet antyder, brukes datatypemodifikatorer med innebygde datatyper for å endre lengden på data som en bestemt datatype kan inneholde.

    Modifikatorer i C++

    Datatypemodifikatorer tilgjengelig i C++ er:

    • Signert
    • Usignert
    • Kort
    • Lang

    Tabellen nedenfor oppsummerer den modifiserte størrelsen og utvalget av innebygde datatyper når de kombineres med typemodifikatorene:

    Data-type

    Størrelse (i byte)

    Område

    kort int

    2

    -32.768 til 32.767

    usignert kort int

    2

    0 til 65.535

    usignert int

    4

    0 til 4.294.967.295

    int

    4

    -2 147 483 648 til 2 147 483 647

    centos vs rhel

    lang int

    4

    -2 147 483 648 til 2 147 483 647

    usignert lang int

    4

    0 til 4.294.967.295

    lang lang int

    8

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

    usignert lang lang int

    8

    0 til 18 446 744 073 709 551 615

    signert røye

    1

    -128 til 127

    usignert røye

    1

    0 til 255

    flyte

    4

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

    dobbelt

    8

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

    lang dobbel

    12

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

    wchar_t

    2 eller 4

    1 bred karakter

    Merk : Verdiene ovenfor kan variere fra kompilator til kompilator. I eksemplet ovenfor har vi vurdert GCC 32 bit.
    Vi kan vise størrelsen på alle datatypene ved å bruke sizeof()-operatoren og sende nøkkelordet til datatypen, som et argument til denne funksjonen som vist nedenfor:

    Se følgende diagram for å få utvalget av datatyper

    Merk: syntaks header-filen er definert for å finne utvalget av grunnleggende datatyper. Usignerte modifikatorer har minimumsverdien er null. Så ingen makrokonstanter er definert for minimumsverdien uten fortegn.

    Makrokonstanter

    Navn

    Uttrykker

    CHAR_MIN

    Minimumsverdien for et objekt av typen char

    CHAR_MAX

    Maksimal verdi for et objekt av typen char

    SCHAR_MIN

    Minimumsverdien for et objekt av typen Signed char

    SCHAR_MAX

    Maksimal verdi for et objekt av typen Signert char

    FLIGHT_MAX

    Maksimal verdi for et objekt av typen Unsigned char

    CHAR_BIT

    Antall biter i et char-objekt

    MB_LEN_MAX

    Maksimalt antall byte i et multi-byte tegn

    SHRT_MIN

    Minimumsverdien for et objekt av typen short int

    SHRT_MAX

    Maksimal verdi for et objekt av typen short int

    USHRT_MAX

    Maksimal verdi for et objekt av typen Unsigned short int

    INT_MIN

    Minimumsverdien for et objekt av typen int

    INT_MAX

    Maksimal verdi for et objekt av typen int

    UINT_MAX

    Maksimal verdi for et objekt av typen Usignert int

    LONG_MIN

    Minimumsverdien for et objekt av typen long int

    LONG_MAX

    Maksimal verdi for et objekt av typen long int

    HEAD_MAX

    Maksimal verdi for et objekt av typen Unsigned long int

    SHIP_MIN

    Minimumsverdien for et objekt av typen long long int

    LLONG_MAX

    Maksimal verdi for et objekt av typen long long int

    ULLONG_MAX

    Maksimal verdi for et objekt av typen Unsigned long long int

    Den faktiske verdien avhenger av det bestemte systemet og bibliotekimplementeringen, men skal gjenspeile grensene for disse typene i målplattformen. LLONG_MIN, LLONG_MAX og ULLONG_MAX er definert for biblioteker som samsvarer med C-standarden fra 1999 eller senere (som bare inkluderer C++-standarden siden 2011: C++11).

    C++-program for å finne rekkevidden av datatyper ved hjelp av makrokonstanter

    Eksempel:

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

    >

    >

    Produksjon

    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>

    Tidskompleksitet: O(1)

    Plass kompleksitet: 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;> }>

    >

    >

    Produksjon

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

    Dette programmet erklærer variabler av ulike datatyper, tildeler verdier til dem og skriver deretter ut verdiene deres.

    Heltallsdatatypene inkluderer int, short, long og long long. Disse datatypene representerer hele tall av varierende størrelse.

    Flytpunktdatatypene inkluderer flytende, dobbel og lang dobbel. Disse datatypene representerer reelle tall med varierende presisjonsnivåer.

    Tegndatatypene inkluderer char, wchar_t, char16_t og char32_t. Disse datatypene representerer individuelle tegn av varierende størrelse.

    Den boolske datatypen er en enkel datatype som bare kan ha én av to verdier: sann eller usann.

    Strengdatatypen er en sekvens av tegn. I dette programmet bruker vi strengklassen til å erklære en strengvariabel og tilordne den en verdi.

    Fordeler :

    Datatyper gir en måte å kategorisere og organisere data i et program, noe som gjør det enklere å forstå og administrere.
    Hver datatype har et spesifikt utvalg av verdier den kan inneholde, noe som gir mer presis kontroll over typen data som lagres.
    Datatyper bidrar til å forhindre feil og feil i et program ved å håndheve strenge regler for hvordan data kan brukes og manipuleres.
    C++ gir et bredt spekter av datatyper, slik at utviklere kan velge den beste typen for en spesifikk oppgave.

    Ulemper :

    Bruk av feil datatype kan føre til uventet oppførsel og feil i et program.
    Noen datatyper, for eksempel lange dobler eller char arrays, kan ta opp mye minne og påvirke ytelsen hvis de brukes overdrevent.
    C++s komplekse typesystem kan gjøre det vanskelig for nybegynnere å lære og bruke språket effektivt.
    Bruken av datatyper kan legge til ekstra kompleksitet og detaljerthet til et program, noe som gjør det vanskeligere å lese og forstå.