logo

Tipos de datos C++

Todo variables utilice el tipo de datos durante la declaración para restringir el tipo de datos que se almacenarán. Por tanto, podemos decir que los tipos de datos se utilizan para indicarle a las variables el tipo de datos que pueden almacenar. Siempre que se define una variable en C++, el compilador asigna algo de memoria para esa variable en función del tipo de datos con el que se declara. Cada tipo de datos requiere una cantidad diferente de memoria.

C++ admite una amplia variedad de tipos de datos y el programador puede seleccionar el tipo de datos adecuado a las necesidades de la aplicación. Los tipos de datos especifican el tamaño y los tipos de valores que se almacenarán. Sin embargo, la representación del almacenamiento y las instrucciones de la máquina para manipular cada tipo de datos difieren de una máquina a otra, aunque las instrucciones de C++ son idénticas en todas las máquinas.

C++ admite los siguientes tipos de datos:



  1. Primario o Incorporado o Tipo de datos fundamentales
  2. Tipos de datos derivados
  3. Tipos de datos definidos por el usuario

Tipos de datos en C++

Los tipos de datos en C++ se dividen principalmente en 3 tipos:

1. Tipos de datos primitivos : Estos tipos de datos son tipos de datos integrados o predefinidos y el usuario puede usarlos directamente para declarar variables. ejemplo: int, char, float, bool, etc. Los tipos de datos primitivos disponibles en C++ son:

  • Entero
  • Personaje
  • Booleano
  • Punto flotante
  • Punto flotante doble
  • Sin valor o nulo
  • Carácter amplio

2. Tipos de datos derivados: Función

  • Formación
  • Puntero
  • Referencia
  • 3. Tipos de datos abstractos o definidos por el usuario : Clase

  • Estructura

  • Clase
  • Unión
  • Clase
  • Enumeración
  • Typedef tipo de datos definido
  • Tipos de datos primitivos

      Clase
    • Entero : La palabra clave utilizada para tipos de datos enteros es En t . Los números enteros normalmente requieren 4 bytes de espacio de memoria y oscilan entre -2147483648 y 2147483647.
    • Personaje : El tipo de datos de caracteres se utiliza para almacenar caracteres. La palabra clave utilizada para el tipo de datos de carácter es carbonizarse . Los caracteres normalmente requieren 1 byte de espacio de memoria y varían de -128 a 127 o de 0 a 255.
    • Booleano : El tipo de datos booleano se utiliza para almacenar valores booleanos o lógicos. Una variable booleana puede almacenar verdadero o FALSO . La palabra clave utilizada para el tipo de datos booleanos es booleano .
    • Punto flotante : El tipo de datos de punto flotante se utiliza para almacenar valores de punto flotante o valores decimales de precisión simple. La palabra clave utilizada para el tipo de datos de punto flotante es flotar . Las variables flotantes normalmente requieren 4 bytes de espacio de memoria.
    • Punto flotante doble : El tipo de datos de coma flotante doble se utiliza para almacenar valores de coma flotante o valores decimales de doble precisión. La palabra clave utilizada para el tipo de datos de punto flotante doble es doble . Las variables dobles suelen requerir 8 bytes de espacio de memoria.
    • vacío : Nulo significa sin ningún valor. El tipo de datos nulo representa una entidad sin valor. Se utiliza un tipo de datos nulo para aquellas funciones que no devuelven un valor.
    • Clase
    • Carácter amplio : Carácter amplio El tipo de datos también es un tipo de datos de caracteres, pero este tipo de datos tiene un tamaño mayor que el tipo de datos normal de 8 bits. Representado por wchar_t . Generalmente tiene una longitud de 2 o 4 bytes.
    • Operador tamaño de(): operador tamaño de() se utiliza para encontrar el número de bytes ocupados por una variable/tipo de datos en la memoria de la computadora.

    Ejemplo:

    int metro, x[50];

    contar<

    contar<

    El tamaño de las variables puede ser diferente de los que se muestran en la tabla anterior, según el compilador y la computadora que esté utilizando.

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

    >

    >

    Producción

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

    Complejidad del tiempo: O(1)

    Complejidad espacial: O(1)

    Modificadores de tipo de datos

    Como sugiere el nombre, los modificadores de tipo de datos se utilizan con tipos de datos integrados para modificar la longitud de los datos que puede contener un tipo de datos en particular.

    Modificadores en C++

    Los modificadores de tipo de datos disponibles en C++ son:

    • Firmado
    • No firmado
    • Corto
    • Largo

    La siguiente tabla resume el tamaño modificado y el rango de tipos de datos integrados cuando se combinan con los modificadores de tipo:

    Tipo de datos

    Tamaño (en bytes)

    Rango

    corto int

    2

    -32.768 a 32.767

    int corto sin firmar

    2

    0 a 65.535

    entero sin firmar

    4

    0 a 4.294.967.295

    En t

    4

    -2.147.483.648 a 2.147.483.647

    matriz java de cadena

    largo int

    4

    -2.147.483.648 a 2.147.483.647

    int largo sin firmar

    4

    0 a 4.294.967.295

    largo largo int

    8

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

    int largo largo sin firmar

    8

    0 a 18.446.744.073.709.551.615

    carácter firmado

    1

    -128 a 127

    carácter sin firmar

    1

    0 a 255

    flotar

    4

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

    doble

    8

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

    doble largo

    12

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

    wchar_t

    2 o 4

    1 carácter ancho

    Nota : Los valores anteriores pueden variar de un compilador a otro. En el ejemplo anterior, hemos considerado GCC de 32 bits.
    Podemos mostrar el tamaño de todos los tipos de datos usando el operador sizeof() y pasando la palabra clave del tipo de datos, como argumento para esta función como se muestra a continuación:

    Ahora, para obtener el rango de tipos de datos, consulte el siguiente cuadro.

    Nota: sintaxis El archivo de encabezado se define para encontrar el rango de tipos de datos fundamentales. Los modificadores sin signo tienen un valor mínimo de cero. Por lo tanto, no se definen macroconstantes para el valor mínimo sin signo.

    Macroconstantes

    Nombre

    expresa

    CHAR_MIN

    El valor mínimo para un objeto de tipo char.

    CHAR_MAX

    Valor máximo para un objeto de tipo char

    SCHAR_MIN

    El valor mínimo para un objeto de tipo Carácter firmado

    SCHAR_MAX

    Valor máximo para un objeto de tipo Carácter firmado

    VUELO_MAX

    Valor máximo para un objeto de tipo Char sin firmar

    CHAR_BIT

    Número de bits en un objeto char

    MB_LEN_MAX

    Número máximo de bytes en un carácter multibyte

    SHRT_MIN

    El valor mínimo para un objeto de tipo short int

    SHRT_MAX

    Valor máximo para un objeto de tipo short int

    USHRT_MAX

    Valor máximo para un objeto de tipo Unsigned short int

    INT_MIN

    El valor mínimo para un objeto de tipo int

    INT_MAX

    Valor máximo para un objeto de tipo int

    UINT_MAX

    Valor máximo para un objeto de tipo Unsigned int

    LONG_MIN

    El valor mínimo para un objeto de tipo long int

    LARGO_MAX

    Valor máximo para un objeto de tipo long int

    CABEZA_MAX

    Valor máximo para un objeto de tipo Unsigned long int

    ENVÍO_MIN

    El valor mínimo para un objeto de tipo long long int

    LLONG_MAX

    Valor máximo para un objeto de tipo long long int

    ULLONG_MAX

    Valor máximo para un objeto de tipo Unsigned long long int

    El valor real depende del sistema particular y de la implementación de la biblioteca, pero reflejará los límites de estos tipos en la plataforma de destino. LLONG_MIN, LLONG_MAX y ULLONG_MAX se definen para bibliotecas que cumplen con el estándar C de 1999 o posterior (que solo incluye el estándar C++ desde 2011: C++11).

    Programa C++ para encontrar el rango de tipos de datos usando constantes macro

    Ejemplo:

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

    >

    >

    Producción

    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>

    Complejidad del tiempo: O(1)

    Complejidad espacial: 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;> }>

    >

    >

    Producción

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

    Este programa declara variables de varios tipos de datos, les asigna valores y luego imprime sus valores.

    Los tipos de datos enteros incluyen int, short, long y long long. Estos tipos de datos representan números enteros de diferentes tamaños.

    Los tipos de datos de punto flotante incluyen flotante, doble y doble largo. Estos tipos de datos representan números reales con distintos niveles de precisión.

    Los tipos de datos de caracteres incluyen char, wchar_t, char16_t y char32_t. Estos tipos de datos representan caracteres individuales de diferentes tamaños.

    El tipo de datos booleano es un tipo de datos simple que sólo puede tener uno de dos valores: verdadero o falso.

    El tipo de datos de cadena es una secuencia de caracteres. En este programa, usamos la clase de cadena para declarar una variable de cadena y asignarle un valor.

    Ventajas :

    Los tipos de datos proporcionan una forma de categorizar y organizar datos en un programa, lo que facilita su comprensión y gestión.
    Cada tipo de datos tiene un rango específico de valores que puede contener, lo que permite un control más preciso sobre el tipo de datos que se almacenan.
    Los tipos de datos ayudan a prevenir errores y fallas en un programa al imponer reglas estrictas sobre cómo se pueden usar y manipular los datos.
    C++ proporciona una amplia gama de tipos de datos, lo que permite a los desarrolladores elegir el mejor tipo para una tarea específica.

    Desventajas :

    El uso de un tipo de datos incorrecto puede provocar comportamientos inesperados y errores en un programa.
    Algunos tipos de datos, como los dobles largos o las matrices de caracteres, pueden consumir una gran cantidad de memoria y afectar el rendimiento si se usan en exceso.
    El complejo sistema de tipos de C++ puede dificultar que los principiantes aprendan y utilicen el lenguaje de forma eficaz.
    El uso de tipos de datos puede agregar complejidad y verbosidad adicionales a un programa, haciéndolo más difícil de leer y comprender.