Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Enumerari

c



+ Font mai mare | - Font mai mic



Enumerari

O enumerare este o multime de constante intregi ce pot lua toate valorile unei variabile de un anumit tip.



Enumerarile se definesc in acelasi mod ca si structurile, utilizand cuvantul cheie enum ce semnaleaza inceputul unui tip enumerare. Forma generala de definire a unei enumerari este:

enum nume_tip_enum lista_variabile;

unde atat nume_tip_enum, cat si lista_variabile sunt optionale.

Exemplu: Urmatorul fragment defineste o enumerare numita 'bancnota' cu care apoi se declara o enumerare numita 'bani' avand acest tip:

enum bancnota ;

enum bancnota bani;

Dandu-se aceasta definitie si declaratie, sunt valabile urmatoarele instructiuni:

bani = mie;

if (5*bani == cincimii) printf('Sunt 5000 lei.n');

Trebuie precizat ca fiecare enumerator este caracterizat printr-o valoare intreaga. Fara nici o alta initializare, valoarea primului enumerator este 0, a celui de-al doilea este 1, s.a.m.d. De aceea, instructiunea: printf ('%d %d, suta, mie);

va afisa pe ecran: 0 3

Se pot specifica valorile unuia sau mai multor simboluri folosind initializatori. De exemplu:

enum bancnota ;

face ca simbolurile din enumerarea bancnota sa aiba valorile:

suta = 0

douasute = 1

cincisute = 2

mie = 1000

cincimii = 1001

zecemii = 1002

Urmatorul fragment de program nu functioneaza, deoarece 'bani' este un intreg si nu un sir :

bani = cincimii;

printf ('%s', bani);

Nici acest program nu functioneaza:

gets (s);

strcpy (bani, s);

Pentru a afisa tipurile bancnotelor continute in enumerarea 'bani', se va scrie:

switch (bani)

Uneori pentru a translata valoarea unui enumerator in sirul corespunzator, se poate declara un tablou de siruri si utiliza valoarea enumeratorului ca index. De exemplu, urmatorul fragment va afisa sirul corespunzator:

char name[ ][20] = ;

. . . . . .

printf ('%s', name[bani]);

Fragmentul anterior va functiona numai daca nu se realizeaza initializarea simbolurilor, deoarece indexarea sirurilor incepe cu zero. Urmatorul program afiseaza numele bancnotelor:

# include <stdio.h>

enum bancnota ;

char name[][20]=

void main()

Daca variabilei uniune y din exemplul urmator i se aplica operatorul sizeof() vom gasi sizeof(y) = 8.

# include <stdio.h>

union y;

void main()

Deci compilatorul va retine valoarea celei mai largi tipuri de date din uniune.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 825
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved