C++
Słowa kluczowe typu podstawowego
Szukaj…
int
Oznacza podpisany typ liczb całkowitych o „rozmiarze naturalnym sugerowanym przez architekturę środowiska wykonawczego”, którego zakres obejmuje co najmniej -32767 do +32767 włącznie.
int x = 2;
int y = 3;
int z = x + y;
Może być łączony z unsigned
, short
, long
i long long
(qv) w celu uzyskania innych typów całkowitych.
bool
Typ liczby całkowitej, którego wartość może być true
lub false
.
bool is_even(int x) {
return x%2 == 0;
}
const bool b = is_even(47); // false
zwęglać
Typ liczby całkowitej, który jest „wystarczająco duży, aby przechowywać dowolnego członka podstawowego zestawu znaków implementacji”. Jest zdefiniowane w implementacji, czy char
jest podpisany (i ma zakres co najmniej od -127 do +127 włącznie) lub niepodpisany (i ma zakres co najmniej od 0 do 255 włącznie).
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
Typ całkowity bez znaku o tym samym rozmiarze i wyrównaniu co uint_least16_t
, który jest zatem wystarczająco duży, aby pomieścić jednostkę kodu 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
Typ całkowity bez znaku o tym samym rozmiarze i wyrównaniu co uint_least32_t
, który jest zatem wystarczająco duży, aby pomieścić jednostkę kodu UTF-32.
const char32_t full_house[] = U"🂣🂳🂨🂸🃈"; // non-BMP characters
std::cout << sizeof(full_house)/sizeof(char32_t) << "\n"; // prints 6
pływak
Typ zmiennoprzecinkowy. Ma najwęższy zakres spośród trzech typów zmiennoprzecinkowych w C ++.
float area(float radius) {
const float pi = 3.14159f;
return pi*radius*radius;
}
podwójnie
Typ zmiennoprzecinkowy. Jego zakres obejmuje float
. W połączeniu z long
oznacza typ long double
zmiennoprzecinkowego long double
, którego zakres obejmuje zakres double
.
double area(double radius) {
const double pi = 3.141592653589793;
return pi*radius*radius;
}
długo
Oznacza podpisaną liczbę całkowitą, która jest co najmniej tak długa jak int
, i której zakres obejmuje co najmniej -2147483647 do +2147483647 włącznie (tj. - (2 ^ 31-1) do + (2 ^ 31-1)). Ten typ można również zapisać jako long int
.
const long approx_seconds_per_year = 60L*60L*24L*365L;
Kombinacja long double
oznacza typ zmiennoprzecinkowy, który ma najszerszy zakres spośród trzech typów zmiennoprzecinkowych.
long double area(long double radius) {
const long double pi = 3.1415926535897932385L;
return pi*radius*radius;
}
Gdy long
występuje specyfikator dwa, jak na long long
, to oznacza liczbę całkowitą podpisany typu, która jest co najmniej tak długo, jak long
i którego zakres obejmuje co najmniej -9223372036854775807 do +9223372036854775807 włącznie (to znaczy, - (2 ^ 63 - 1) do + (2 ^ 63-1)).
// support files up to 2 TiB
const long long max_file_size = 2LL << 40;
krótki
Oznacza podpisaną liczbę całkowitą, która jest co najmniej tak długa jak char
, i której zakres obejmuje co najmniej -32767 do +32767 włącznie. Ten typ można również zapisać jako short int
.
// (during the last year)
short hours_worked(short days_worked) {
return 8*days_worked;
}
unieważnić
Niekompletny typ; obiekt nie może mieć typu void
, nie ma też tablic void
ani odniesień do void
. Jest używany jako typ zwracanych funkcji, które niczego nie zwracają.
Ponadto funkcja może być nadmiarowo zadeklarowana za pomocą jednego parametru typu void
; jest to równoważne z zadeklarowaniem funkcji bez parametrów (np. int main()
i int main(void)
deklarują tę samą funkcję). Ta składnia jest dozwolona dla zgodności z C (gdzie deklaracje funkcji mają inne znaczenie niż w C ++).
Typ void*
(„wskaźnik do void
”) ma właściwość polegającą na tym, że dowolny wskaźnik obiektu może zostać na niego przekonwertowany i odwrotnie, w wyniku czego powstaje ten sam wskaźnik. Ta funkcja sprawia, że typ void*
odpowiedni dla niektórych rodzajów (niebezpiecznych) interfejsów kasujących typy, na przykład dla ogólnych kontekstów w interfejsach API typu C (np. qsort
, pthread_create
).
Każde wyrażenie można przekształcić w wyrażenie typu void
; nazywa się to wyrażeniem odrzuconej wartości :
static_cast<void>(std::printf("Hello, %s!\n", name)); // discard return value
Może to być przydatne do wyraźnego zasygnalizowania, że wartość wyrażenia nie jest przedmiotem zainteresowania i że wyrażenie należy oceniać wyłącznie pod kątem skutków ubocznych.
wchar_t
Liczba całkowita wystarczająco duża, aby reprezentować wszystkie znaki największego obsługiwanego rozszerzonego zestawu znaków, znanego również jako zestaw znaków szerokich. (Nie jest przenośne wchar_t
założenia, że wchar_t
używa jakiegokolwiek konkretnego kodowania, takiego jak UTF-16.)
Zwykle jest używany, gdy trzeba przechowywać znaki powyżej ASCII 255, ponieważ ma większy rozmiar niż typ 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"