|
|
a
, b
și rezultat
, dar am fi putut numi variabilele cu orice nume doream, atâta timp cât acestea ar fi fost identificatori valizi in limbajul C ++._
). Spații, semne de punctuație și simboluri nu pot face parte dintr-un identificator. În plus, identificatorii încep întotdeauna cu o literă. Ei pot începe, de asemenea, cu un caracter de subliniere (_
), dar astfel de identificatori sunt considerați rezervați pentru cuvinte cheie (specifice compilatorului sau pentru date de identificare externe). În nici un caz, nu poate începe cu o cifră.
alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case, catch, char, char16_t, char32_t, class, compl, const, constexpr, const_cast, continue, decltype, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or, or_eq, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq
REZULTAT
nu este aceeași cu variabila rezultat
sau cu variabila Rezultat
. Acestia sunt trei identificatori diferiți identificand trei variabile diferite.'A'
sau '$'
. Tipul cel mai de bază este char
, care este un caracter (reprezentat pe un octet). Alte tipuri sunt de asemenea prevăzute de caractere mai largi.7
sau 1024
. Există într-o mare varietate de dimensiuni și pot fi cu semn (signed)sau fără semn(unsigned), în funcție de capacitatea de a suporta sau nu valori negative.3.14
sau 0.01
, cu diferite grade de precizie; în funcție de aceasta se decide care dintre cele trei va fi folosit.bool
, poate reprezenta date care iau numai una din cele două stări: true
sau false
.Grup | Numele tipurilor* | Observații privind dimensiunea / precizia |
---|---|---|
Tipuri caracter | char | Exact un byte în dimensiune. Cel puțin 8 biți. |
char16_t | Nu mai mic decât char . Cel puțin 16 biți. | |
char32_t | Nu mai mic decât char16_t .Cel puțin 32 biți. | |
wchar_t | Poate reprezenta cea mai mare mulțime de caractere suportată. | |
Tipuri întregi cu semn(signed) | signed char | Acceași dimensiune ca și char . Cel puțin 8 biți. |
signed short int | Nu mai mic decât char . Cel puțin 16 biți. | |
signed int | Nu mai mic decât short . Cel puțin 16 biți. | |
signed long int | Nu mai mic decât int . Cel puțin 32 biți. | |
signed long long int | Nu mai mic decât long . Cel puțin 64 biți. | |
Tipuri întregi fără semn (unsigned) | unsigned char | (aceeași dimensiune ca și corespondentul cu semn) |
unsigned short int | ||
unsigned int | ||
unsigned long int | ||
unsigned long long int | ||
Tipuri pentru numere zecimale | float | |
double | Precizie nu mai mică decât float | |
long double | Precizie nu mai mică decât double | |
Tip boolean | bool | |
Tip vid | void | fără spațiu |
Pointer nul | decltype(nullptr) |
signed
and int
components - only the part not in italics is required to identify the type, the part in italics is optional. I.e., signed short int
can be abbreviated as signed short
, short int
, or simply short
; they all identify the same fundamental type.char
(care are o dimensiune de exact un octet), nici unul dintre tipurile fundamentale nu are o dimensiune standard specificată (cel mult o dimensiune minimă). De aceea, nu este necesar ca tipul să aibă exact dimensiunea minimă (și chiar nu are, în multe cazuri). Aceasta nu înseamnă că tipurile sunt de dimensiune nedeterminată, ci doar că nu există o dimensiune standard pentru toate compilatoarele și mașinile; fiecare compilator implementează acea dimensiune care se potrivește arhitecturii pe care va rula programul. Această specificație, mai mult decât generică, privind dimensiunea tipurilor de date îi dă limbajului C++ o mare flexibilitate, astfel încât poate fi adaptat să lucreze optim pe tot felul de platforme, atât în prezent, cât și în viitor. Dimensiune | Valori unic reprezentabile | Notes |
---|---|---|
8-bit | 256 | = 28 |
16-bit | 65 536 | = 216 |
32-bit | 4 294 967 296 | = 232 (~4 billion) |
64-bit | 18 446 744 073 709 551 616 | = 264 (~18 billion billion) |
char
, int
și double
sunt cele pe care le putem alege pentru a reprezenta respectiv: caractere, întregi și numere zecimale. Celelate tipuri din grupele respective se folosesc numai în cayuri foarte speciale.<limits>
). Dacă, din unele motive, avem nevoie de dimensiunile specifice tipurilor, biblioteca definește anumite alias-uri de dimensiune fixă în antetul <cstdint>
.void
, care marchează absența tipului, și tipul nullptr
, care este un tip speciald e pointer. Ambele tipuri vor fi discutate într-un capitol următor despre pointeri.
|
|
int
al cărei identificator este a
. A doua declară o variabilă de tip float
al cărei identificator este numar
. Odată declarate, variabilele a
și numar
pot fi folosite în interiorul domeniului lor din program.
|
|
a
, b
și c
), toate fiind de tip int
și având exact același sens ca și:
|
|
|
|
4 |
tip identificator = valoare_initiala;
int
, numită x
, și pentru a o inițializa cu valoarea zero chiar în momentul declarării, putem scrie:
|
|
()
):tip identificator (valoare_initiala);
|
|
{}
) în loc de paranteze (aceasta a fost introdusă de revizuirea standardului C++, în 2011):tip identificator {valaore_initiala};
|
|
|
|
6 |
auto
ca specificator de tip pentru acea variabilă:
|
|
bar
este declarată ca având un tip auto
; de aceea, tipul său bar
este tipul valorii folosite pentru inițializare: în acest caz se folosește tipul lui foo
, care este int
.decltype
:
|
|
bar
este declarată ca având același tip cu foo
.auto
și decltype
sunt caracteristici puternice ale limbajului recent adăugate. Dar deducția de tip merită să fie folosită numai când nu se poate obține prin alte mijloace sau când folosirea ei îmbunătățește claritatea programului. Niciunul dintre exemplele de mai sus nu se încadrează în aceste situații. Din contră, ele chiar înrăutățesc claritatea, căci atunci când sitim sursa ar trebui să căutăm după tipul lui foo
pentru a realiza care este de fapt tipul lui bar
.string
. Variabilele de acest tip pot memora o secvență de caractere, precum cuvinte sau propoziții. O proprietate foarte utilă!<string>
):
|
|
Acesta este un string |
|
|
|
|
Acesta este continutul initial al sirului Acesta este un al continut al sirului |
endl
termină (end ) linia (afișarea caracterului newline și curățarea stream-ului).Previous: Structura unui program | Index | Next: Constante |