C++
Basistype Trefwoorden
Zoeken…
int
Geeft een geheel getal met teken aan met "de natuurlijke grootte voorgesteld door de architectuur van de uitvoeringsomgeving", waarvan het bereik ten minste -32767 tot en met +32767 omvat.
int x = 2;
int y = 3;
int z = x + y;
Kan worden gecombineerd met unsigned
, short
, long
en long long
(qv) om andere typen gehele getallen op te leveren.
bool
Een geheel getal waarvan de waarde true
of false
.
bool is_even(int x) {
return x%2 == 0;
}
const bool b = is_even(47); // false
verkolen
Een geheel getal dat "groot genoeg is om elk lid van de basistekenset van de implementatie op te slaan". Het wordt door de implementatie bepaald of char
is ondertekend (en heeft een bereik van minimaal -127 tot en met +127, inclusief) of niet ondertekend (en heeft een bereik van minimaal 0 tot en met 255, inclusief).
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
Een geheel getal zonder teken met dezelfde grootte en uitlijning als uint_least16_t
, dat daarom groot genoeg is om een UTF-16-code-eenheid te bevatten.
const char16_t message[] = u"你好,世界\n"; // Chinese for "hello, world\n"
std::cout << sizeof(message)/sizeof(char16_t) << "\n"; // prints 7
char32_t
Een niet-ondertekend geheel getal met dezelfde grootte en uitlijning als uint_least32_t
, dat daarom groot genoeg is om een UTF-32-code-eenheid te bevatten.
const char32_t full_house[] = U"🂣🂳🂨🂸🃈"; // non-BMP characters
std::cout << sizeof(full_house)/sizeof(char32_t) << "\n"; // prints 6
vlotter
Een drijvend punttype. Heeft het smalste bereik van de drie drijvende-komma types in C ++.
float area(float radius) {
const float pi = 3.14159f;
return pi*radius*radius;
}
dubbele
Een drijvend punttype. Het assortiment omvat dat van float
. In combinatie met long
geeft dit het type long double
drijvende komma aan, waarvan het bereik dat van double
omvat.
double area(double radius) {
const double pi = 3.141592653589793;
return pi*radius*radius;
}
lang
Geeft een geheel getal met teken aan dat ten minste even lang is als int
en waarvan het bereik ten minste -2147483647 tot en met +2147483647 omvat (dat wil zeggen - (2 ^ 31 - 1) tot + (2 ^ 31 - 1)). Dit type kan ook worden geschreven als long int
.
const long approx_seconds_per_year = 60L*60L*24L*365L;
De combinatie long double
geeft een drijvende-komma-type aan, dat het breedste bereik van de drie drijvende-komma-typen heeft.
long double area(long double radius) {
const long double pi = 3.1415926535897932385L;
return pi*radius*radius;
}
Wanneer de long
specificator twee keer voorkomt, zoals in long long
, geeft dit een ondertekend geheel getal aan dat minstens even long
is en waarvan het bereik ten minste -9223372036854775807 tot en met +9223372036854775807 omvat (dat wil zeggen - (2 ^ 63 - 1) tot + (2 ^ 63 - 1)).
// support files up to 2 TiB
const long long max_file_size = 2LL << 40;
kort
Geeft een geheel getal met char
aan dat minstens even lang is als char
en waarvan het bereik ten minste -32767 tot en met +32767 omvat. Dit type kan ook worden geschreven als short int
.
// (during the last year)
short hours_worked(short days_worked) {
return 8*days_worked;
}
leegte
Een onvolledig type; Het is niet mogelijk dat een object type hebben void
, noch zijn er arrays van void
of verwijzingen naar void
. Het wordt gebruikt als het retourtype van functies die niets retourneren.
Bovendien kan een functie overbodig worden verklaard met een enkele parameter van het type void
; dit komt overeen met het declareren van een functie zonder parameters (bijv. int main()
en int main(void)
verklaren dezelfde functie). Deze syntaxis is toegestaan voor compatibiliteit met C (waar functieverklaringen een andere betekenis hebben dan in C ++).
Het type void*
("pointer to void
") heeft de eigenschap dat elke objectpointer ernaar kan worden geconverteerd en terug kan resulteren in dezelfde pointer. Deze functie maakt het type void*
geschikt voor bepaalde soorten (type-onveilige) type-wissende interfaces, bijvoorbeeld voor generieke contexten in API's in C-stijl (bijv. qsort
, pthread_create
).
Elke uitdrukking kan worden omgezet in een uitdrukking van het type void
; dit wordt een verworpen waarde-uitdrukking genoemd :
static_cast<void>(std::printf("Hello, %s!\n", name)); // discard return value
Dit kan nuttig zijn om expliciet aan te geven dat de waarde van een uitdrukking niet van belang is en dat de uitdrukking alleen op zijn bijwerkingen moet worden beoordeeld.
wchar_t
Een geheel getal dat groot genoeg is om alle tekens van de grootste ondersteunde uitgebreide tekenset te vertegenwoordigen, ook bekend als de brede tekenset. (Het is niet draagbaar om aan te nemen dat wchar_t
een bepaalde codering gebruikt, zoals UTF-16.)
Het wordt normaal gebruikt wanneer u tekens boven ASCII 255 moet opslaan, omdat het groter is dan het 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"