Programare constructor c
Conceptul de tip de date,
Tipul de date determină:
- Reprezentarea internă în memoria calculatorului;
- o multitudine de valori care pot lua valoarea acestui tip;
- operații și funcții care pot fi aplicate la cantitățile de acest tip.
Toate tipurile C ++ pot fi împărțite în bază și compus. În C ++, a definit șase tipuri de bază de date pentru a reprezenta numere întregi, numere reale, caractere și valori logice. Pe baza acestor tipuri de programator poate introduce o descriere a tipurilor de compozite. Acestea includ matrice, enumerările, funcții, structuri, link-uri, indicii, sindicate, și clase.
Principalele tipuri de date
De bază (standard) tipurile de date sunt adesea numite aritmetică, deoarece acestea pot fi folosite în operații aritmetice. Următoarele cuvinte cheie sunt definite pentru a descrie principalele tipuri:
int (a);
char (caracter);
wchar_t (caracter larg);
bool (logic);
float (real);
dublu (dublă precizie reală).
Primele patru tipuri sunt numite întreg (întregi), ultimele două - tipuri de virgulă mobilă. Codul care generează un compilator pentru prelucrare numere întregi diferit de codul de valori în virgulă mobilă.
Există patru de tip Specificator specificând reprezentarea internă și intervalul de valori de tipuri standard:
scurt (scurt);
lung (lung);
semnat (semnat);
unsigned (unsigned).
int size tip este determinat ca un standard, în funcție de computer și compilator. Pentru procesor de 16 biți cu valoarea acestui tip de 2 octeți, pe 32 de biți - 4 octeți.
Pentru a determina numărul exact de octeți ar trebui să scrie un program de testare pentru a include operațiunea:
Valoarea variabilei s este egal cu numărul de octeți ocupate de obiectele de tipul celor indicate în paranteze. Pentru a determina întregul interval de valori de tip de date trebuie să utilizeze formula:
pentru tipurile semnate (int - tip semnat) și
pentru tipuri fără semn (unsigned).
Înainte de numele de specificatorul scurt indică tipul de compilator pe care este necesar să se retragă un număr de 2 octeți, indiferent de procesorul de biți. Specificator înseamnă mult timp că întreaga valoare va ocupa de 4 octeți. Astfel, un 16-biți de calculator echivalente int și scurte int, iar pe 32-bit - int si long int.
Reprezentarea internă a valorii tip întreg - număr întreg în cod binar. Când se utilizează Specificator semnat numărul MSB este interpretat ca un semn (0 - număr pozitiv, 1 - negativ). unsigned permite reprezintă numai numere pozitive, deoarece MSB este considerată ca făcând parte din numărul de cod. Astfel, gama de valori de tip int depinde specificatori.
În mod implicit, toate tipurile de numere întregi sunt considerate a fi iconic, că specificatorul este semnat poate fi omisă.
Constante în program, este atribuit un anumit tip, în conformitate cu punctele de vedere. În cazul în care acest tip, indiferent de motiv, nu gura-raivaet programator, acesta poate specifica în mod explicit tipul dorit folosind sufixul L, L (lungime) și U, u (nesemnate). De exemplu, 32L constantă va avea un tip lung și ocupă 4 octeți. Este posibil să se utilizeze sufixe U și L simultan, de exemplu, Ox22UL sau 05Lu.
Tipuri de short int, int lung, semnat int și unsigned int poate fi redus la un scurt, lung, semnat și nesemnate, respectiv.
Tipul de caractere (char).
Sub valoarea unui tip de caracter este dat numărul de octeți, suficient pentru a se potrivi codul zecimal de orice caracter din setul de caractere pentru acest computer, și care a condus la denumirea tipului. Ca o regulă, este de 1 octet. Tip char, precum și alte tipuri de numere întregi pot fi semnate sau nesemnate. Valorile pot fi stocate cu valoarea semnul în intervalul -128 la 127. Când se utilizează valori fără semn Specificator poate varia de la 0 la 255. Acest lucru este suficient pentru a stoca toate simbolurile de la 256 de caractere ASCII set. Valorile de tip char sunt, de asemenea, folosite pentru a stoca numere întregi care nu depășesc intervalul specificat.
Boolean (bool).
Valorile de tip logic poate lua numai valorile adevărate și false, care sunt rezervate cuvinte. Reprezentarea internă sub formă de fals valoare - 0 (zero). Orice altă valoare este interpretată ca fiind adevărată. Când adevarata transformare are o valoare de 1 la tipul întreg.
Tipul real (float, dublu dublu și lung).
standardul C ++ definește trei tipuri de stocare a datelor de valori reale: float, double si lung dublu.
Tipuri de date reale stocate în memoria calculatorului în mod diferit decât întreg. Reprezentarea internă a unui număr real este format din două părți - mantisa și ordine. Cantitățile float IBM PC compatibil calculatoare de tip ia 4 bytes, dintre care un bit este dat de semnul mantisei, 8 biți prin procedura și sub 23 significand.
Pentru valori de tip dublu ocupând 8 octeți, ordinea și sub mantisa îndepărtat 11 și 52, respectiv, de evacuare. Lungimea mantisă determină numărul punctului-Ness, și ordinea lungimii - a gamei sale.
Specificator cu mult înainte de tipul de dublu nume indică faptul că o valoare atribuită de 10 octeți.
Intervalul de valori reale tipuri este definită printr-un program de testare în care doriți în orice mod de a afla valorile acestor constante:
FLT_MIN ... FLT_MAX - un interval de plutire
DBL_MIN ... DBL_MAX - gama de tip dublu,
LDBL_MIN ... LDBL_MAX - tip gama dublă lungă.
Aceste constante sunt în bibliotecă
constante în virgulă mobilă au un dublu tip implicit. Puteți specifica în mod explicit constanta de tip prin sufixul F, f (float) și L, o (lung). De exemplu, constanta 2E + 6L va fi de tipul long double si 1.82f constanta - tip float.
Standard gamele ANSI valori pentru tipuri majore nu sunt specificate, determinat numai de raportul dintre dimensiunile lor, de exemplu:
sizeof (float) Diferite tipuri de întregi și tipuri reale și acuratețea gama de reprezentare a datelor introduse pentru a permite programator de a utiliza cel mai eficient funcționalitatea unui anumit aparat, deoarece alegerea tipului de calcule depinde de capacitatea de viteză și de memorie diferite. Dar, optimizat pentru calculatoare de orice tip de program poate să nu fie portabil la alte platforme, astfel încât, în general, ar trebui să fie evitate în funcție de caracteristicile specifice ale tipurilor de date. Pe lângă cele de mai sus, principalele tipuri de limbaj se referă de tip void, ci o multitudine de valori pentru acest tip de martor. Este folosit pentru a determina funcțiile care nu returnează valori (astfel de funcții în Pascal numite proceduri, dar procedurile C limbă nu) pentru a indica o listă goală de argumente pentru o funcție ca tip de bază pentru indicii și exprimate.