logo

Tipi di dati C++

Tutto variabili utilizzare il tipo di dati durante la dichiarazione per limitare il tipo di dati da archiviare. Pertanto, possiamo dire che i tipi di dati vengono utilizzati per indicare alle variabili il tipo di dati che possono archiviare. Ogni volta che una variabile viene definita in C++, il compilatore alloca memoria per quella variabile in base al tipo di dati con cui viene dichiarata. Ogni tipo di dati richiede una diversa quantità di memoria.

C++ supporta un'ampia varietà di tipi di dati e il programmatore può selezionare il tipo di dati appropriato alle esigenze dell'applicazione. I tipi di dati specificano la dimensione e i tipi di valori da archiviare. Tuttavia, la rappresentazione della memoria e le istruzioni della macchina per manipolare ciascun tipo di dati differiscono da macchina a macchina, sebbene le istruzioni C++ siano identiche su tutte le macchine.

C++ supporta i seguenti tipi di dati:



  1. Primario O Integrato O Tipo di dati fondamentale
  2. Tipi di dati derivati
  3. Tipi di dati definiti dall'utente

Tipi di dati in C++

I tipi di dati in C++ sono principalmente divisi in 3 tipi:

1. Tipi di dati primitivi : Questi tipi di dati sono tipi di dati incorporati o predefiniti e possono essere utilizzati direttamente dall'utente per dichiarare variabili. esempio: int, char, float, bool, ecc. I tipi di dati primitivi disponibili in C++ sono:

  • Numero intero
  • Carattere
  • Booleano
  • Virgola mobile
  • Doppia virgola mobile
  • Senza valore o vuoto
  • Carattere ampio

2. Tipi di dati derivati: Funzione

  • Vettore
  • Puntatore
  • Riferimento
  • 3. Tipi di dati astratti o definiti dall'utente : Classe

  • Struttura

  • Classe
  • Unione
  • Classe
  • Enumerazione
  • Tipo di dati definito da Typedef
  • Tipi di dati primitivi

      Classe
    • Numero intero : La parola chiave utilizzata per i tipi di dati interi è int . I numeri interi richiedono in genere 4 byte di spazio di memoria e vanno da -2147483648 a 2147483647.
    • Carattere : Il tipo di dati carattere viene utilizzato per memorizzare i caratteri. La parola chiave utilizzata per il tipo di dati carattere è car . I caratteri in genere richiedono 1 byte di spazio di memoria e vanno da -128 a 127 o da 0 a 255.
    • Booleano : il tipo di dati booleano viene utilizzato per memorizzare valori booleani o logici. Una variabile booleana può memorizzare entrambi VERO O falso . La parola chiave utilizzata per il tipo di dati booleano è bool .
    • Virgola mobile : Il tipo di dati a virgola mobile viene utilizzato per memorizzare valori a virgola mobile a precisione singola o valori decimali. La parola chiave utilizzata per il tipo di dati a virgola mobile è galleggiante . Le variabili float richiedono in genere 4 byte di spazio di memoria.
    • Doppia virgola mobile : il tipo di dati Double Floating Point viene utilizzato per memorizzare valori a virgola mobile a precisione doppia o valori decimali. La parola chiave utilizzata per il tipo di dati a virgola mobile doppio è Doppio . Le variabili doppie richiedono in genere 8 byte di spazio di memoria.
    • vuoto : Vuoto significa senza alcun valore. il tipo di dati void rappresenta un'entità senza valore. Un tipo di dati void viene utilizzato per quelle funzioni che non restituiscono un valore.
    • Classe
    • Carattere ampio : Carattere ampio anche il tipo di dati è un tipo di dati carattere, ma questo tipo di dati ha una dimensione maggiore del normale tipo di dati a 8 bit. Rappresentata da wchar_t . Generalmente è lungo 2 o 4 byte.
    • operatore sizeof(): operatore sizeof() viene utilizzato per trovare il numero di byte occupati da una variabile/tipo di dati nella memoria del computer.

    Esempio:

    intm,x[50];

    cout<

    cout<

    La dimensione delle variabili potrebbe essere diversa da quelle mostrate nella tabella sopra, a seconda del compilatore e del computer che stai utilizzando.

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

    >

    >

    Produzione

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

    Complessità temporale: O(1)

    Complessità spaziale: O(1)

    Modificatori del tipo di dati

    Come suggerisce il nome, i modificatori del tipo di dati vengono utilizzati con i tipi di dati incorporati per modificare la lunghezza dei dati che un particolare tipo di dati può contenere.

    Modificatori in C++

    I modificatori del tipo di dati disponibili in C++ sono:

    • Firmato
    • Non firmato
    • Corto
    • Lungo

    La tabella seguente riassume la dimensione modificata e l'intervallo dei tipi di dati incorporati quando combinati con i modificatori di tipo:

    Tipo di dati

    Dimensione (in byte)

    Allineare

    breve int

    2

    Da -32.768 a 32.767

    int breve senza segno

    2

    Da 0 a 65.535

    intero senza segno

    4

    da 0 a 4.294.967.295

    int

    4

    Da -2.147.483.648 a 2.147.483.647

    leggere il file Excel in Java

    lungo int

    4

    Da -2.147.483.648 a 2.147.483.647

    int lungo senza segno

    4

    da 0 a 4.294.967.295

    lungo lungo int

    8

    Da -(2^63) a (2^63)-1

    senza segno lungo lungo int

    8

    da 0 a 18.446.744.073.709.551.615

    firmato car

    1

    da -128 a 127

    carattere non firmato

    1

    da 0 a 255

    galleggiante

    4

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

    Doppio

    8

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

    doppio lungo

    12

    Da -1,1×10^4932 a 1,1×10^4932

    wchar_t

    2 o 4

    1 carattere largo

    Nota : I valori sopra indicati possono variare da compilatore a compilatore. Nell'esempio sopra abbiamo considerato GCC a 32 bit.
    Possiamo visualizzare la dimensione di tutti i tipi di dati utilizzando l'operatore sizeof() e passando la parola chiave del tipo di dati come argomento a questa funzione come mostrato di seguito:

    Ora per ottenere la gamma di tipi di dati fare riferimento alla seguente tabella

    Nota: sintassi il file di intestazione è definito per trovare l'intervallo di tipi di dati fondamentali. I modificatori senza segno hanno un valore minimo pari a zero. Pertanto, non sono definite costanti macro per il valore minimo senza segno.

    Costanti macro

    Nome

    Esprime

    CAR_MIN

    Il valore minimo per un oggetto di tipo char

    CAR_MAX

    Valore massimo per un oggetto di tipo char

    SCAR_MIN

    Il valore minimo per un oggetto di tipo Signed char

    SCAR_MAX

    Valore massimo per un oggetto di tipo Signed char

    VOLO_MAX

    Valore massimo per un oggetto di tipo Unsigned char

    CAR_BIT

    Numero di bit in un oggetto char

    MB_LEN_MAX

    Numero massimo di byte in un carattere multibyte

    SHRT_MIN

    Il valore minimo per un oggetto di tipo short int

    SHRT_MAX

    Valore massimo per un oggetto di tipo short int

    USHRT_MAX

    Valore massimo per un oggetto di tipo Unsigned short int

    INT_MIN

    Il valore minimo per un oggetto di tipo int

    INT_MAX

    Valore massimo per un oggetto di tipo int

    UINT_MAX

    Valore massimo per un oggetto di tipo Unsigned int

    LUNGO_MIN

    Il valore minimo per un oggetto di tipo long int

    LUNGO_MAX

    Valore massimo per un oggetto di tipo long int

    TESTA_MAX

    Valore massimo per un oggetto di tipo Unsigned long int

    NAVE_MIN

    Il valore minimo per un oggetto di tipo long long int

    LLONG_MAX

    Valore massimo per un oggetto di tipo long long int

    ULLONG_MAX

    Valore massimo per un oggetto di tipo Unsigned long long int

    Il valore effettivo dipende dal particolare sistema e dall'implementazione della libreria, ma rifletterà i limiti di questi tipi nella piattaforma di destinazione. LLONG_MIN, LLONG_MAX e ULLONG_MAX sono definiti per le librerie conformi allo standard C del 1999 o successivo (che include solo lo standard C++ dal 2011: C++11).

    Programma C++ per trovare l'intervallo di tipi di dati utilizzando costanti macro

    Esempio:

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

    >

    >

    Produzione

    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>

    Complessità temporale: O(1)

    Complessità spaziale: 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;> }>

    >

    >

    Produzione

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

    Questo programma dichiara variabili di vari tipi di dati, assegna loro dei valori e quindi stampa i loro valori.

    I tipi di dati interi includono int, short, long e long long. Questi tipi di dati rappresentano numeri interi di dimensioni variabili.

    I tipi di dati a virgola mobile includono float, double e long double. Questi tipi di dati rappresentano numeri reali con diversi livelli di precisione.

    I tipi di dati carattere includono char, wchar_t, char16_t e char32_t. Questi tipi di dati rappresentano singoli caratteri di varie dimensioni.

    Il tipo di dati booleano è un tipo di dati semplice che può avere solo uno di due valori: true o false.

    Il tipo di dati stringa è una sequenza di caratteri. In questo programma utilizziamo la classe string per dichiarare una variabile stringa e assegnarle un valore.

    Vantaggi :

    I tipi di dati forniscono un modo per classificare e organizzare i dati in un programma, semplificandone la comprensione e la gestione.
    Ciascun tipo di dati può contenere un intervallo specifico di valori, consentendo un controllo più preciso sul tipo di dati archiviati.
    I tipi di dati aiutano a prevenire errori e bug in un programma applicando regole rigide su come i dati possono essere utilizzati e manipolati.
    C++ fornisce un'ampia gamma di tipi di dati, consentendo agli sviluppatori di scegliere il tipo migliore per un'attività specifica.

    Svantaggi :

    L'utilizzo del tipo di dati errato può provocare comportamenti imprevisti ed errori in un programma.
    Alcuni tipi di dati, come long double o array di caratteri, possono occupare una grande quantità di memoria e influire sulle prestazioni se utilizzati in modo eccessivo.
    Il complesso sistema di tipi di C++ può rendere difficile per i principianti apprendere e utilizzare il linguaggio in modo efficace.
    L'uso dei tipi di dati può aggiungere ulteriore complessità e verbosità a un programma, rendendone più difficile la lettura e la comprensione.