C++
Palabras clave de tipo básico
Buscar..
En t
Indica un tipo entero con signo con "el tamaño natural sugerido por la arquitectura del entorno de ejecución", cuyo rango incluye al menos -32767 a +32767, ambos inclusive.
int x = 2;
int y = 3;
int z = x + y;
Se puede combinar con unsigned
, short
, long
y long long
(qv) para obtener otros tipos de enteros.
bool
Un tipo entero cuyo valor puede ser true
o false
.
bool is_even(int x) {
return x%2 == 0;
}
const bool b = is_even(47); // false
carbonizarse
Un tipo entero que es "lo suficientemente grande como para almacenar cualquier miembro del conjunto de caracteres básico de la implementación". Está definido por la implementación si char
está firmado (y tiene un rango de al menos -127 a +127, inclusive) o no firmado (y tiene un rango de al menos 0 a 255, inclusive).
const char zero = '0';
const char one = zero + 1;
const char newline = '\n';
std::cout << one << newline; // prints 1 followed by a newline
char16_t
Un tipo entero sin signo con el mismo tamaño y alineación que uint_least16_t
, que por lo tanto es lo suficientemente grande como para contener una unidad de código UTF-16.
const char16_t message[] = u"你好,世界\n"; // Chinese for "hello, world\n"
std::cout << sizeof(message)/sizeof(char16_t) << "\n"; // prints 7
char32_t
Un tipo entero sin signo con el mismo tamaño y alineación que uint_least32_t
, que por lo tanto es lo suficientemente grande como para contener una unidad de código UTF-32.
const char32_t full_house[] = U"🂣🂳🂨🂸🃈"; // non-BMP characters
std::cout << sizeof(full_house)/sizeof(char32_t) << "\n"; // prints 6
flotador
Un tipo de punto flotante. Tiene el rango más estrecho de los tres tipos de punto flotante en C ++.
float area(float radius) {
const float pi = 3.14159f;
return pi*radius*radius;
}
doble
Un tipo de punto flotante. Su gama incluye la de float
. Cuando se combina con long
, denota el tipo de punto flotante long double
, cuyo rango incluye el de double
.
double area(double radius) {
const double pi = 3.141592653589793;
return pi*radius*radius;
}
largo
Indica un tipo entero con signo que es al menos tan largo como int
, y cuyo rango incluye al menos -2147483647 a +2147483647, inclusive (es decir, - (2 ^ 31 - 1) a + (2 ^ 31 - 1)). Este tipo también se puede escribir como long int
.
const long approx_seconds_per_year = 60L*60L*24L*365L;
La combinación long double
denota un tipo de punto flotante, que tiene el rango más amplio de los tres tipos de punto flotante.
long double area(long double radius) {
const long double pi = 3.1415926535897932385L;
return pi*radius*radius;
}
Cuando el especificador long
aparece dos veces, como en long long
, indica un tipo entero con signo que es al menos tan largo como long
, y cuyo rango incluye al menos -9223372036854775807 a +9223372036854775807, inclusive (es decir, - (2 ^ 63 - 1) a + (2 ^ 63 - 1)).
// support files up to 2 TiB
const long long max_file_size = 2LL << 40;
corto
Indica un tipo entero con signo que es al menos tan largo como char
, y cuyo rango incluye al menos -32767 a +32767, inclusive. Este tipo también se puede escribir como short int
.
// (during the last year)
short hours_worked(short days_worked) {
return 8*days_worked;
}
vacío
Un tipo incompleto; no es posible que un objeto tenga el tipo void
, ni existen matrices de void
o referencias a void
. Se utiliza como el tipo de retorno de funciones que no devuelven nada.
Además, una función se puede declarar de forma redundante con un único parámetro de tipo void
; esto es equivalente a declarar una función sin parámetros (por ejemplo, int main()
y int main(void)
declaran la misma función). Esta sintaxis está permitida para la compatibilidad con C (donde las declaraciones de funciones tienen un significado diferente al de C ++).
El tipo void*
("pointer to void
") tiene la propiedad de que cualquier puntero de objeto se puede convertir en él y viceversa y dar como resultado el mismo puntero. Esta función hace que el tipo void*
adecuado para ciertos tipos de interfaces de borrado de tipo (tipo inseguro), por ejemplo, para contextos genéricos en API de estilo C (por ejemplo, qsort
, pthread_create
).
Cualquier expresión se puede convertir en una expresión de tipo void
; esto se llama una expresión de valor descartado :
static_cast<void>(std::printf("Hello, %s!\n", name)); // discard return value
Esto puede ser útil para señalar explícitamente que el valor de una expresión no es de interés y que la expresión debe evaluarse solo por sus efectos secundarios.
wchar_t
Un tipo entero lo suficientemente grande como para representar todos los caracteres del conjunto de caracteres extendido soportado más grande, también conocido como el conjunto de caracteres anchos. (No es portátil suponer que wchar_t
usa alguna codificación en particular, como UTF-16).
Normalmente se usa cuando necesita almacenar caracteres sobre ASCII 255, ya que tiene un tamaño mayor que el del tipo de carácter char
.
const wchar_t message_ahmaric[] = L"ሰላም ልዑል\n"; //Ahmaric for "hello, world\n"
const wchar_t message_chinese[] = L"你好,世界\n";// Chinese for "hello, world\n"
const wchar_t message_hebrew[] = L"שלום עולם\n"; //Hebrew for "hello, world\n"
const wchar_t message_russian[] = L"Привет мир\n"; //Russian for "hello, world\n"
const wchar_t message_tamil[] = L"ஹலோ உலகம்\n"; //Tamil for "hello, world\n"