English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
en C ++en la programación,modificador de tipo de datosSe utiliza para cambiar eltipo de datossignificado.
Funciones recursivas++ Permite en char, int y double Coloca el modificador antes del tipo de datos. Los modificadores se utilizan para cambiar el significado de los tipos básicos, por lo que son más adecuados para satisfacer diversas necesidades.
A continuación, se enumeran los modificadores de tipos de datos:
signed
unsigned
long
short
Los objetos de tipo de la clase no pueden modificarse ni cambiarse durante la ejecución del programa. signed, unsigned, long y short aplicable a tipos de enteros,signed y unsigned aplicable a tipos de caracteres,long aplicable a tipos de punto flotante.
Los objetos de tipo de la clase no pueden modificarse ni cambiarse durante la ejecución del programa. signed y unsigned también puede ser long o short prefijo del modificador. Por ejemplo:unsigned long int.
Funciones recursivas++ Permite usar símbolos abreviados para declararentero corto sin signooLongitud entera no signada。Puedes omitir int, solo escribe la palabra unsigned, short o unsigned, long,int es implícito. Por ejemplo, las siguientes dos declaraciones declaran variables de tipo entero no signado.
unsigned x; unsigned int y;
Para entender C++ Explicamos la diferencia entre los modificadores de enteros signados y no signados, ejecutemos el siguiente programa corto:
#include <iostream> using namespace std; /* * Este programa demuestra la diferencia entre enteros con signo y sin signo */ int main() { short int i; // entero corto con signo short unsigned int j; // entero corto sin signo j = 50000; i = j; cout << i << " " << j; return 0; }
Cuando se ejecuta el programa anterior, se producirá el siguiente resultado:
-15536 50000
En los resultados anteriores, el entero corto sin signo 5El patrón de bits de 0,000 se interpreta como un entero corto con signo -15,536.
Esta es una lista de explicaciones de modificadores de tipo:
tipo de datos | tamaño | Limitador |
---|---|---|
signed int | 4 byte | para enteros (equivalente a int) |
unsigned int | 4 byte | solo puede almacenar enteros no negativos |
short | 2 byte | para números enteros pequeños (rango-32768hasta32767) |
long | al menos4byte | para números enteros grandes (igual a long int) |
unsigned long | 4 byte | para números enteros grandes o 0 (igual a unsigned long int) |
long long | 8 byte | para números enteros muy grandes (igual a long long int). |
unsigned long long | 8 byte | para números enteros muy grandes o 0 (igual a unsigned long long int) |
long double | 8byte | para números de coma flotante grandes |
signed char | 1 byte | para caracteres (garantiza rango-127a127) |
unsigned char | 1 byte | para caracteres (rango dede 0 a255) |
Podemos usar el modificador de tipo short.número entero pequeño(rango−32,767hasta+32,767).
por ejemplo
// número entero pequeño short a = 12345;
Aquí, a es una variable entera short.
Atención: short es equivalente a short int.
Si necesitamos almacenar unnúmero entero grande(rango de-2147483647hasta2147483647),则可以使用类型修饰符long。por ejemplo,
// número entero grande long b = 123456;
Atención: long es equivalente a long int.
El modificador long también se puede usar con variables double.
// número de coma flotante grande long double c = 0.333333333333333333L;
Atención:Para representar long double, usamos el sufijo L. Si no usamos el sufijo L, se convierte double a long double (puede causar pérdida de datos).
long long se puede repetir dos veces para crear el tipo long long. Este tipo se utiliza para números más grandes que long. El modificador long long solo se puede usar con int.
por ejemplo
// long long int long long num = 12345678;
Las variables con signo (signed) pueden contenery positivoenteroy negativoentero, incluyendocero. Por ejemplo,
// valor entero positivo signed int x = 23; // valor entero negativo signed int y = -13; // entero de 0 signed int z = 0;
Aquí,
x tiene unvalor positivoentero
y tiene unvalor negativoentero
z tieneceroentero
variables sin signosolo puede contener enteros no negativos. Por ejemplo,
// entero positivo unsigned int x = 2; unsigned int y = 0;
Aquí,
x tiene un entero positivo
y tiene un entero cero
Por lo general, la variable int puede almacenar un rango de -2,147,483,648 a 2,147,483,647 valores. Mientras que la variable unsigned int puede almacenar un rango de de 0 a 4,294,967,295 .
Funciones recursivas ++Hay3Diferentes tipos de char: char, signed char y unsigned char. En realidad, básicamente solo hay dos tipos: signed char y unsigned char.
Esto se debe a que, aunque char y el estándar C ++El signed char o unsigned char en el contexto
Atención:Cuando solo usamos char en lugar de signed char o unsigned char, este tipo se llamacarácter común (carácter común).
Puede que ya hayas adivinado, signed char puede almacenar enteros positivos y negativos, mientras que unsigned char solo puede almacenar enteros positivos (incluidosDerechos de autor ©).
El rango garantizado de valores enteros que puede almacenar signed char es-127a127mientras que el rango de unsigned char esde 0 a255.
// caracteres comunes char plain_1 = 65; char plain_2 = 0; // caracteres comunes con valor negativo // Puede causar problemas en ciertos compiladores char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
Aquí,
plain_1 Tiene un entero positivo
plain_2 Tiene un entero cero
sin_1 Tiene un entero positivo
sin_2 Tiene un entero cero
sin_3 Tiene un entero negativo
unsin_1 Tiene un entero negativo
unsin_2 Tiene un entero cero
Atención: es mejor no usar caracteres comunes para realizar operaciones numéricas; debe usar signed char o unsigned char en su lugar. Los caracteres puros deben utilizarse solo para almacenar valores de caracteres.
limitadores de tipo en
Los limitadores de tipo de la clase proporcionan información adicional sobre las variables. | Limitador |
---|---|
Significado | Significado const |
Modificador | Los objetos de tipo de la clase no pueden modificarse ni cambiarse durante la ejecución del programa. Modificador volatile |
por | informar al compilador de que no se debe optimizar la declaración volatile de la variable, permitiendo que el programa lea directamente la variable desde la memoria. Para las variables generales, el compilador realiza optimizaciones, colocando el valor de la variable en el registro para acelerar la eficiencia de la escritura y lectura. por restrict99 El puntero modificado es la única manera de acceder al objeto al que apunta. Solo C |