Tipuri de date c

În această foaie de post-cheat oferă informații despre tipurile de date de bază, C ++ limbaj de programare și caracteristici ale punerii lor în aplicare. De asemenea, la sfârșitul înregistrării, un tabel cu intervale de valori ale acestor tipuri.







Conceptul de tip de date

Scopul principal al oricărui program de prelucrare a datelor. Aceste tipuri diferite sunt stocate și procesate în diferite moduri. În orice limbaj de programare, fiecare constantă, o variabilă, rezultatul evaluării expresiei sau funcției trebuie să aibă un anumit tip.

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 din această mocirlă.

Pe baza acestor caracteristici, programatorul selectează tipul fiecărei variabile utilizate într-un program de prezentare a obiectelor reale. Descrierea obligatorie a tipului permite compilatorului să efectueze validarea diferitelor structuri ale programului. Pe tipul de comenzi de mașini depinde de valoarea care va fi utilizată pentru prelucrarea datelor.

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.

Tipurile de date de bază în C ++

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:

  1. int (a);
  2. char (caracter);
  3. wchar_t (caracter larg);
  4. bool (logic);
  5. float (real);
  6. dublu (dublă precizie reală).

Primele patru Ting numit întreg (întreg), 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. clarificarea reprezentării interne și intervalul de valori de tipuri standard:

  • scurt (scurt);
  • lung (lung);
  • semnat (semnat);
  • unsigned (unsigned).

Un tip (int)

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.

Î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. Intervalele de variabile de tip întreg cu diferite specifiers pentru calculatoare IBM compatibile PC sunt listate în tabelul „variază valori simple tip de date“ de la sfârșitul înregistrării.

Î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 pentru un motiv oarecare nu este mulțumit cu programatorii, se 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, 0x22UL 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 suficiente pentru a găzdui 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 fi în intervalul de la O 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.

caractere de tip avansat (wchar_t)

tip wchar_t proiectat să funcționeze cu un set de caractere, ceea ce este insuficient pentru codificare de un octet, de exemplu, Unicode. Dimensiunea acestui tip depinde de punerea în aplicare; Ca o regulă, acesta corespunde tipului scurt. Constantele String tip wchar_t sunt înregistrate cu un prefix L, de exemplu, L »Gates».

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.

Tipurile de virgulă flotantă (float, dublu, și lung dublu)

standardul C ++ definește trei tipuri de stocare a datelor de valori reale: float, double si lung dublu.

Tipuri de date în virgulă mobilă 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. Mantisă - un număr mai mare de 1,0 dar mai mică de 2,0. Deoarece cifră semnificativă a mantisei este întotdeauna egal cu 1, nu este stocat.

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 de precizie, iar lungimea ordinului - gama sa. După cum se poate observa din tabelul de la sfârșitul înregistrării, același număr de octeți rezervate pentru valoarea de tip float si long int, intervalele de valori acceptabile variază foarte mult datorită unei forme de reprezentare internă.

Specificator cu mult înainte de tipul de dublu nume indică faptul că valoarea sa este dată de 10 octeți.

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, L (lung). De exemplu, constanta 2E + 6L va fi de tip lung dublu, iar 1.82f constanta - tip float.

Pentru scris portabil pentru diferite nu se poate face pe dimensiunea platformei software de tip ipoteze int. Pentru a obține necesar de a utiliza operațiunea sizeof, rezultatul care este dimensiunea în octeți de tip. De exemplu, pentru MS-DOS sizeof (int) a sistemului de operare va avea ca rezultat 2 și pentru Windows 98 sau OS / 2, rezultatul este 4.

Standard gamele ANSI valori pentru tipuri majore nu sunt specificate, determinat numai de raportul dintre dimensiunile lor, de exemplu:

sizeof (float) ≤ slzeof (dublu) ≤ sizeof (long double)
sizeof (char) ≤ slzeof (scurt) ≤ sizeof (int) ≤ sizeof (long)

Valorile minime și maxime pentru tipuri întregi depind de punerea în aplicare și sunt enumerate în fișierul antet (), Caracteristicile tipurilor reale - fișier (), precum și un numeric_limits șablon de clasă

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ă o valoare, pentru a indica o listă goală de argumente ale funcției ca tip de bază pentru indicii într-o operațiune turnat.

Intervalele de valori ale tipurilor simple de date în C ++ pentru IBM PC compatibile calculatoare

Î: Ce calculator înseamnă termenul IBM PC compatibil?
A: computer IBM PC compatibil (în engleză IBM PC compatibil.) - arhitectura de calculator aproape de IBM PC, XT si AT. Calculatoare IBM compatibile PC sunt bazate pe microprocesoare care sunt compatibile cu Intel 8086 (și, după cum știm, toate cele mai recente procesoare Intel emise sunt pe deplin compatibilă cu 8086). De fapt, este aproape toate computerele moderne.

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.

Vreau să vorbesc cu tine despre scrierea unui server proxy pentru c ++. spune-mi unde să găsească surse pentru ei? Eu voi fi foarte recunoscător pentru tine.

Buna ziua. În primul rând, aceasta este o sarcină foarte dificilă pentru un începător. În al doilea rând, este mai bine să încerce să scrie ceva, singura sursă de a deranja capul. În al treilea rând, eu nu solicitare cu privire la cazul în care pentru a le găsi.
Cu siguranță vă poate ajuta orice biblioteci de rețea cu funcțiile lor, de exemplu, WinPcap.

Îmi pare rău, desigur, dar în cazul în care tipul string (string). Sunt nou, dar este, de asemenea, considerat un tip?
sau am greșit și nu poate merge la tipurile standard de C ++.

string - acest lucru nu este tipul unei clase. Detalii aici. de exemplu