Sunteți pe pagina 1din 9

Informatic clasa a X-a

Cap.4

Operatorii limbajului C

O expresie este o succesiune de operatori i operanzi legai ntre ei dup reguli specifice limbajului: Operanzii pot fi - variabile sau constante - funcii care furnizeaz un rezultat prin chiar numele lor (de exemplu funcia sistem sqrt(x), care furnizeaz radical de ordinul din x!" Operatorii sunt simboluri care determin executarea anumitor operaii" #imbajul $ dispune de o gam extins de operatori" %e l&ng setul de operatori uzuali' limbajul are definii operatori care ofer faciliti asemntoare limbajelor de asamblare" (xist astfel operatori aritmetici' operatori de atribuire simpl sau compus' operatori logici' operatori de prelucrare pe bii etc" )n funcie de rezultatul obinut n urma evalurii' exist: - Expresii matematice: rezultatul este un numr ntreg sau real" - Expresii logice: rezultatul este * sau + care poate fi interpretat ca ,alse sau -rue" - Expresii de tip text: rezultatul este un ir de caractere" - Expresii fr tip: care conin apelul unei funcii care nu furnizeaz nici un rezultat"

4.1 recede!"a operatorilor


%recedena operatorilor determin ordinea de evaluare a operaiilor dintr-o expresie" )n funcie de preceden' operatorii $ sunt mprii n +. categorii prezentate n tabelul urmtor : Categorie +" %rioritate maxim " Operatori unari Operatori ( ) $ % . & ' ( ) (( )) * + si,eof (tip) + . ( ) // 00 / /1 0 01 11 &1 * 2 3 ** 33 4: 1 +1 -1 .1 (1 ) 1 *1 21 31 //1 001 , #em!ifica"ie /pel de funcie (xpresie cu indici 0electori de membru la structuri 1egare logic 1egare bit cu bit (complementare cu +! %lus i minus unari 2ncrementare3decrementare (pre i post! Obinerea adresei3indirectare 4imensiune operand (n octei! $onversie explicit de tip - cast )nmulire3mprire 6estul mpririi ntregi %lus i minus binari 4eplasare st&nga3dreapta pe bii 9ai mic3mai mic sau egal 9ai mare3mai mare sau egal (gal 4iferit 02 logic bit cu bit 0/= (>$#=02? bit cu bit 0/= logic bit cu bit 02 logic 0/= logic Operatorul condiional (ternar! /tribuire simpl /tribuire produs ' c&t ' rest /tribuire sum ' diferen /tribuire 02 ' 0/= (>$#=02? ' 0/= (bit! /tribuire cu deplasare st&nga3dreapta (valuare expresie+ ' expresie ?aloarea rezultatului este expresie " "

5" Operatori de multiplicare 7" /dunare ' scdere ." 4eplasri 8" 6elaionali :" (galitate ;" <" +*" ++" + " +5" Op" condiional +7" Operatori de atribuire

+." ?irgula

$ei din prima categorie au prioritatea maxim" %recedena descrete cu c&t crete numrul categoriei din care face parte operatorul" Operatorii din aceeai categorie au acelai grad de preceden" Ordinea de evaluare a operaiilor este de la st&nga la dreapta' cu excepia operatorilor unari (categoria !' a operatorului condiional (categoria +5! i a operatorilor de atribuire (categoria +7! care au ordinea de evaluare de la dreapta la st&nga"

Informatic clasa a X-a -otui ordinea de efectuare a operaiilor nu este ntotdeauna perfect determinat" 0e poate face o reorganizare a expresiilor pentru a obine un cod mai eficient' dar ordinea de efectuare a operaiilor nu este strict definit" )n funcie de context' acelai operator poate avea semnificaii diferite" 0pre exemplu operatorul * (ampersand! poate fi considerat ca : - operatorul binar 02 pe bii (a * b! - operatorul unar' adresa unui operand (*a!

0emnificaia depinde de numrul de argumente folosite' unul sau dou " 4.5 Operatorul de atribuire simpl
/cest operator (1! realizeaz memorarea valorii unei expresii ntr-o variabil" /re sintaxa : 6ariabila1expresie7 (fectul este stocarea valorii expresiei din membrul drept la adresa variabilei scrise n membrul st&ng" Exemplul 1: char c; int i,k; float x; c=a; i=3; k=d; /* k=100 ; d de tip caracter este convertit la un tip ntreg */ x=c+i; /* x=100 ;se face conversie la un tip ntreg : 97 !=100 */ )n plus' atribuirea nsi are o valoare' i anume valoarea variabilei din st&nga dup memorarea coninutului valorii expresiei" 4atorit acestui efect' rezult n final o valoare a expresiei de atribuire care poate fi folosit direct ntr-o alt atribuire" 4e aceea este permis atribuirea multipl" Exemplul 2 : int i,j,k ; i=j=k=1; care este echivalent cu secvena : k=1; j=k; i=j; 0e observ o mai bun compactare a codului surs n primul caz' de folosire a atribuirii multiple" -oate cele trei variabile au dup atribuire valoarea +" Exemplul 3: int i,j,k; j+1=i; i=1+j=k; /mbele instruciuni de atribuire sunt incorecte' pentru c j(1 nu este o variabil" Exemplul 4: $onsiderm instruciunile: b=2; c=3; a=b+c; unde toate variabilele sunt de tipul i!t" ,olosind faptul c 1 este un operator' putem condensa la: a=(b=2)+(c=3); (xplicaia este c expresia de asignare b15 atribuie valoarea at&t variabilei c' c&t i instruciunii ntregi"

4.8 Operatori aritmetici


Operatorii aritmetici din $ pot folosi' mai puin operatorul modulo care poate lucra numai cu numere ntregi' at&t numere ntregi c&t i numere reale" Exemplul 1 : ,olosirea operatorilor aritmetici " int i,j,n; float x; n=10*4-7; /* n=!! */ i= !2; /* i=" ca re#ultatul $p%r&irii a dou% nu$ere ntregi */ j=n"i; /* '=1 ca restul $p%r&irii a dou% nu$ere ntregi */ x=n; /* x=!!(00 ) ca nu$%r real*/ x=x"i; /* se o*&ine eroare operatorul + fiind definit nu$ai pt( nu$ere ntregi*/ Exemplul 2 : #a acelai rezultat conteaz tipul variabilei din st&nga " int i; float x; i=7#!2; /* i=! pentru c% !(, real este convertit la tipul ntreg al lui i */ $=7#!2; /* x=!(, pentru c% x este de tip real */ )n concluzie' re,ultatul este co!6ertit la tipul 6ariabilei di! membrul st9!g al atribuirii " Exemplul 3: )n operaiile cu constante conteaz dac ele sunt de tip ntreg sau real" int i,j; i=%!2+7!2;

Informatic clasa a X-a

/* re#ultatele $p%r&irii dintre dou% nu$ere ntregi sunt convertite tot la nu$ere ntregi -i i=. !=, */ j=%#!2+7!2#; /* re#ultatele $p%r&irii dintre un nu$%r real -i un nu$%r ntreg sunt nu$ere reale/.(, !(,=0(0 /deci '=0 */ 0pre deosebire de ceilali operatori aritmetici' operatorii de incrementare i decrementare sunt specifici limbajelor de asamblare" (i sunt mult mai rapizi' efectul lor const&nd n mrirea3micorarea variabilei cu + n modul urmtor : - ((6ar sau 6ar(( : variabila var este mrit cu o unitate' n primul caz' nainte de utilizarea ei (prei!creme!tare!' iar n al doilea caz' dup utilizarea ei (posti!creme!tare ! - ))6ar sau 6ar)) : variabila var este micorat cu o unitate' n primul caz' nainte de utilizarea ei (predecreme!tare!' iar n al doilea caz' dup utilizarea ei (postdecreme!tare! /re importan dac operatorii de incrementare i decrementare se folosesc la st&nga sau la dreapta variabilei" Exemplul 4: int i,j=7; i=j++; /* i=7 / '=1 @3 sau i=++j; /* i=1 / '=1 */ Exemplul 5: int a=2,b=3,c,d; c=d=(a++ +1)&b--; /* a=! / *=. / d=0 / c=0 */ Exemplul 6: ,ie declaraiile i iniializrile: int a=1,b=2,c=3,d=4; /tunci avem: 'x(r)*i) 'x(r)*i) )chi+al)nta (arant),ata -aloar) a*b!c (a*b)!c 0 a*b"c+1 ((a*b)"c)+1 3 ++a*b-c-((++a)*b)-(c--) 1 7 - -b*++d 7-((-b)*(++d)) 17

4.4 Operatorii rela"io!ali


Operatorii relaionali (categoriile 8 i :! pot fi folosii pentru date de tip aritmetic i pointeri" 6ezultatul este * dac relaia nu este ndeplinit i + dac este ndeplinit" Exemplul 1 : int ).al,x,/; x=17; /=2*x-1; ).al=x==/; /* egal=0 @3 Exemplul 2: %resupunemn c avem declaraiile:

'x(r)*i) i1j-k -i+%*j2=k+1 x-/1=j-k-1 $+k+71/!k

'x(r)*i) )chi+al)nta i1(j-k) ((-i)+(%*j))2=(k+1) (x-/)1=((j-k)-1) ((x+k)+7)1(/!k)

-aloar) 0 1 1 0

int i=1,j=2,k=3; do0bl) x=%#%,/=7#7; :tu!ci : Exemplul 3: %resupunem c avem declaraiile: int i=1,j=2,k=3;

'x(r)*i) i==j i3=j i+j+k==-2*-k

'x(r)*i) )chi+al)nta j==i j3=i ((i+j)+k)==((-2)*(-k))

-aloar) 0 1 1

/tunci :

4.; Operatori logici

Informatic clasa a X-a

$um n limbajul $ nu exist tipul boolean' operatorii logici admit operanzi de orice tip scalar (simplu! pe care i interpreteaz conform comparaiei cu *" 4ac valoarea este *' expresia este considerat fals' iar dac valoarea este nenul' expresia se consider adevrat" 6ezultatul unei expresii logice este de tip ntreg i se bazeaz pe conveniile : adevratA+ ' falsA*" <abela de ade6r a operatorilor logici x ** = x 33 = > > > 1 > 1 1 1

x > > &1> &1>

= > &1> > &1>

&x 1 1 > >

Exemplul 1: 4ou forme echivalente pentru verificarea egalitii lui x cu *" x==0 sau 3x Exemplul 2 : 9ai multe variante de verificare a condiiei ca x i B s fie ambii *" a) x==0 44 /==0 b) 3x 44 3/ c) 3(x3=055/3=0) d) 3(x55/) 'x(r)*i) 3(i-j)+1 3i-j+1 33(x+3#3) 3x*33/ Exemplul 3: %resupunem c avem declaraiile: int i=7,j=7; do0bl) x=0#0,/= # ; /tunci: Exemplul 4: %resupunem c avem declaraiile: 'x(r)*i) )chi+al)nta (3(i-j))+1 ((3i)-j)+1 3(3(x+3#3)) (3x)*(3(3/)) -aloar) 2 -6 1 1

'x(r)*i) i44j44k x55i44j-3 i1j44x1/ i1j55x1/

'x(r)*i) )chi+al)nta (i44j)44k x55(i44(j-3)) (i1j)44(x1/) (i1j)55(x1/)

-aloar) 1 0 0 1

int i=3,j=3,k=3; do0bl) x=0#0,/=2#3; /tunci:

4.? Operatorii la !i6el de bit


%osibilitatea utilizrii operatorilor pe bii ofer limbajului $ faciliti asemntoare cu cele ale limbajelor de asamblare" Opera!,ii pot fi !umai tipuri @!tregi " ,ie biii b+ i b " 6ezultatul aplicrii operatorilor pe bii este : b1 > > 1 1 b5 > 1 > 1 Operatori pe bi"i b1 * b5 b1 2 b5 > > > 1 > 1 1 > b1 3 b5 > 1 1 1 ' b1 1 1 > >

Operatorul C este i logic' D este sau logic' E este sau exclusiv ( rezultatul este + doar c&nd biii sunt diferii!" Operatorul F se numete operator de complement pe bit" /cesta inverseaz reprezentarea irului de bii' adic * devine + i + devine *" Exemplu: ,ie declaraia: int a=1%71; //nr(ntreg cu se$n repre#entatat/ de exe$plu/ pe . octe&i

Informatic clasa a X-a

6eprezentarea intern binar a lui a pe octei este 00010100 00110011 (xpresia 'a este: 11101011 11001100 /ceasta are valoarea ntreag -%172" Observa ie: 6eamintim n continuare cum se calculeaz valoarea unui numr pozitiv' respectiv negativ (n memoria calculatorului!" ,ie declaraia int a; $onsiderm reprezentarea sa intern binar pe octei: b1; b14 b1 b> 4ac b1;1> (numr pozitiv!' atunci valoarea lui a se calculeaz cu formula:

a = b j 2 j
j =0

14

4ac b1;11' considerm complementului lui a ('a!:

reprezentarea

baza

a t1; t14 t1 t>

unde tj=1-bj (bitul complementat!" )n acest caz' regulile de calcul sunt:

~ a = bj 2 j
j =0

14

-a=7a+1

d)ci

a=-(7a+1)

$omplementul fa de ale lui * i G+ sunt speciale: valoarea * are toi biii *' pe c&nd valoarea G+ are toi biii +" Observa ie: 4ac maina pe care lucrai reprezint tipul i!t ca lo!g i!t pe 7 octei' raionamentul se aplic identic pe 5 de bii" Operatorii //' respectiv 00' sunt numii operatori de deplasare pe bii la st&nga' respectiv la dreapta" (i au sintaxa : a11n 3@ echivalent cu nmulirea lui a cu 5! @3 a22n 3@ echivalent cu c&tul mpririi lui a la 5! @3 Exemplul 1: int t=1,j=6,k,n; t=111j; 3@ tA+@ 8 @3 k=t222; 3@ HA 83 A 7 @3 n=t4k; 3@ nA* pentru c t i H nu au nici un bit de pe aceeai poziie egal cu + @3 Exemplul 2: ,ie declaraia char c=8; Expresie c c//1 c//4 c//1; Aepre,e!tare >1>11>1> 1>11>1>> 1>1>>>>> >>>>>>>> :ctiu!e nedeplasat deplasare la stanga cu + deplasare la stanga cu 7 deplasare la stanga cu +.

$hiar dac valoarea lui IcJ se memoreaz pe un octet' ntr-o expresie aceasta ia tipul I i!tJ" 4eci valoarea expresiilor Ic//1J' Kc//4J i Kc//1;J se memoreaz pe octei" Operatorul de deplasare la dreapta K00J nu este chiar simetric cu K//J" %entru expresiile integrale fr semn' din st&nga se va deplasa *' iar pentru cele cu semn +" %resupunem c avem declaraiile: int a=1111%; //intreg cu se$n 0n*i.n)d b=1111%; //intreg fara se$n Expresie a a008 b b008 Aepre,e!tare 1>>>>>>> >>>>>>>> 1111>>>> >>>>>>>> 1>>>>>>> >>>>>>>> >>>1>>>> >>>>>>>> :ctiu!e nedeplasat deplasare la dreapta cu 5 nedeplasat deplasare la dreapta cu 5

$a valoare zecimal' a008 este B4>C?' iar b008 este 4>C?' lucru care este n concordan cu noiunea de numr negativ i pozitiv din matematic" Observa ie:

Informatic clasa a X-a

4ac operandul din dreapta a operatorului de deplasare este negativ sau are o valoare care este egal sau depete numrul de bii folosii pentru reprezentarea intern a operandului din st&nga' atunci comportarea este nedefinit" Exemplul 3: -abelul de mai jos ilustreaz regulile de preceden (L este mai prioritar! i asociativitatea (de la st&nga la dreapta! referitoare la operatorii de deplasare" %resupunem c avem declaraiile 0n*i.n)d a=1,b=2; Expresie a//b001 a//1(5//8 a(b//15+a00b Expresie ecDi6ale!t (a//b)001 (a//(1(5))//8 ((a(b)//(15+a))00b Aepre,e!tare >>>>>>>> >>>>>>1> >>>>>>>> >1>>>>>> >>>>11>> >>>>>>>> Ealoare 5 ?4 8>F5

Exemplul 4: ,ie constanta >u' o constant ntreag (valoarea *! de tip unsigned care se reprezint pe +8 bii' deci este practic reprezentat ca +8 de *" Operaia '(>u) neag cei +8 bii de * care vor lua valoarea +' deci se va obine valoarea 51?)11?;;8;" Exemplul 5: %resupunem c avem declaraiile i iniializrile: int a=3333,b=7777; 'x(r)*i) a b a 4 b a : b a 5 b 7(a 5 b) (7a 4 7b) 9)(r),)ntar) 00001101 00000101 00011110 01100001 00001100 00000001 00010011 01100100 00011111 01100101 11100000 10011010 11100000 10011010 -aloar) 3333 7777 3073 4 64 ;037 -;03; -;03;

Exemplul 6: Operatorii 3 i * pot fi folosii pentru a seta(face +! sau terge (face *! anumite c&mpuri de bii" (k4111j)22j ; 3@ determin valoarea bitului de pe poziia j @3 k=k47(111j); 3@ seteaz bitul de pe poziia j la * @3 k=k5111j; 3@ seteaz bitul de pe poziia j la + @3 k=k:111j; 3@ complementeaz bitul de pe poziia j @3 Exemplul !: %rogramul determin numrul format prin extragerea a ! bii consecutivi dintr-un numr dat x ncep&nd cu poziia p" <incl0d)1io*tr)a=#h2 +oid =ain() > int n,(,x; co0t11?n0=ar0l @ A; cin22x; co0t11An0=ar0l d) biti @ A; cin22n; co0t11A(o,itia @ A; cin22(; co0t11An0=ar0l )*t) @?11 (x22()47(7011n); B )n partea st&ng a operatorului * se elimin primii p bii prin deplasarea la dreapta" %entru a extrage cei ! bii' se realizeaz n partea dreapt un filtru' set&nd primii ! bii pe + i terg&ndu-i pe ceilali" Exemplul ": O ImascJ este o constant sau o variabil folosit pentru extragerea biilor dorii dintr-o alt variabil sau expresie" 4in moment ce constanta Ii!tJ + are reprezentarea pe bii >>>>>>>>> >>>>>>>1' aceasta poate fi folosit pentru determinarea bitului cel mai nesemnificativ dintr-o expresie I i!tJ folosind o construcie de forma Iexpresie * 1G" ,ie declaraia int j; atunci expresia j41 are valoarea * dac j este par i valoarea +' dac j este impar" 4ac dorim s gsim valoarea unui anume bit dintr-o expresie' putem folosi o masc care are + n acea poziie i * n rest" 4e exemplu' putem folosi expresia 1//5 pentru a vedea al treilea bit (numr&nd de la dreapta!" (xpresia (+4(1112)) are valoarea + sau * dup cum este al treilea bit din I6J" /lt exemplu de masc este valoarea constant 5;; (adic 5H)1!" (a are reprezentarea >>>>>>>> 11111111" 4eoarece doar octetul din dreapta este +' atunci expresia 6 *5;; va ntoarce o valoare egal cu octetul din dreapta al variabilei 6" 0punem c 5;; este o masc pentru octetul din dreapta"

4.F Operatori compuIi de atribuire


Operatorul de atribuire poate fi combinat cu o serie de operatori aritmetici i operatori la nivel de bit rezult&nd enunuri prescurtate i uneori optimizri ale timpului de execuie"

Informatic clasa a X-a

(xpresia 6ar1 6ar operator expresie7 mai poate fi scris i 6ar operator 1 expresie7 (xist +* combinaii posibile permise operatorilor de atribuire compus i anume : - . combinaii cu operatori aritmetici : (1 , ) 1 , +1 , -1 , .1 - . combinaii cu operatori pe bii : 31 , *1 , 21 , //1 , 001 (xecutarea unei instruciuni care folosete operatori compui de atribuire este mult mai rapid deoarece compilatorul' cunosc&nd c primul operand i rezultatul au aceeai locaie de memorie' folosete un numr mai mic de operaii' av&nd nevoie de un timp de execuie mai mic dec&t atribuirea n cazul general" Exemplul 1: ,olosirea operatorului de aflare a restului " int k=6,j=%; k"=j; /* k=0+,=1 */ Exemplul 2: ,olosirea operatorului de deplasare pe bii " int k=7,j=3; k11=j; /* k=k*.!=7*1=,0 */ Exemplul 3 : ,olosirea operatorului de deplasare la dreapta pe bii i apoi a operatorului aritmetic de adunare" int a=3,b=%,c; a+=b22=c=2; /* c=. / *=,/..=1 / a=! 1=" */ Exemplul 4 : ,olosirea operatorului 0/= (>$#=02? pentru interschimbarea valorilor a dou variabile" 0n*i.n)d int k=6,j= ; k:=j:=k:=j; Exemplul 5 : ,olosirea operatorului M2 pe bii " lon. k; k4=7k; /* k=0 / indiferent de valoarea sa ini&ial% */ Exemplul 6 : 0n*i.n)d *hort k; *hort j; k5=7k; /* k=.10)1=0,,!, / indiferent de valoarea sa anterioar% */ j5=7j; /* dac% ' este cu se$n/ atunci valoarea sa devine 21 */ Exemplul !: int k; k:=k; /* k=0 / indiferent de valoarea sa anterioar% */ Exemplul ": int k=-2%; k11=2; /* k= ).,*..= )100 */ Exemplul #: (xpresia de asignare j*=k+3; este echivalent cu j=j*(k+3); i nu cu j=j*k+3; Exemplul 1$: ,ie declaraiile: int i=1,j=2,k=3,==4; 'x(r)*i) i+=j+k j*=k==+% 'x(r)*i) )chi+al)nta i+=(j+k) j*=(k=(=+%)) 'x(r)*i) )chi+al)nta i=(i+(j+k)) j=(j*(k=(=+%))) -aloar) 6 1;

4.H Operatorul de co!6ersie explicit (cast)


%entru a modifica ordinea de evaluare a operaiilor n mod explicit' se folosete perechea de paranteze rotunde" 4ar perecDea de para!te,e rotu!de poate fi folosit Ii ca operator " /cesta se numete operator de conversie explicit' n limba englez KcastJ" (l este utilizat pentru ca operatorul s poat alege explicit tipul dorit' preciz&nd ntre paranteze conversia cerut" 0intaxa de utilizare este: (tipJco!6ersie) expresie7 (ste necesar utilizarea cast-ului c&nd se dorete folosirea unui alt tip dec&t cel implicit" Exemplul 1: float a,n; a=(int)*Crt(n); /* se deter$in% partea ntreag% a lui radical din n */ Exemplul 2:

Informatic clasa a X-a i!t a, b7 c1(double) a-b7

/* re#ultatul real al $p%r&irii a . nu$ere ntregi */

4.C Operatorul si,eof


(fectul aplicrii operatorului si,eof este aflarea dimensiunii n octei a unui tip de date sau a rezultatului unei expresii" 0intaxa de utilizare este si,eof(tip), respectiv si,eof(expresie). %erechea de paranteze rotunde este obligatorie" 4eoarece tipul operanzilor este determinat nc de la compilare' evaluarea se poate face i n etapa de preprocesare" Exemplu : *i,)of(do0bl)); /* are valoarea 1 */ lon. aD100E; /* ta*lou cu 100 ele$ente de tip long */ *i,)of(a); /* are valoarea 100*"="00 */

4.1> Operatorii de adresare


0e utilizeaz pentru obinerea adresei unui element sau pentru obinerea coninutului de la o anumit adres" $azurile tipice n care sunt folosii sunt : - accesul la c&mpurile unei structuri sau ale unei uniuni - memorarea adresei unui element - accesul indirect la un element - accesul la un element al unui tablou Operatorii de adresare sunt : $ % indexare . selecie direct selecie indirect * determinare adres + adresare indirect

4.11 Operatorul co!di"io!al


(ste un operator cu trei operanzi" 0e folosete pentru situaiile n care exist dou variante de obinere a rezultatului' n funcie de ndeplinirea unei condiii" /re sintaxa : exprJco!d 4 re,ultatJ1 : re,ultatJ57 0emnificaia este : daca exprJco!d atu!ci re,ultat1re,ultatJ1 altfel re,ultat1re,ultatJ5 Exemplul 1: do0bl) =ax,a,b; =ax=(a2b)Fa@b; /* se deter$in% $axi$ul a dou% nu$ere */ Exemplul 2: 0n*i.n)d k; kFco0t11Adif)rit d) 0 A@co0t11A).al c0 0?; /* se afi-ea#% dac% nu$%rul k este sau nu diferit de 0 */ Exemplul 3 : 4eterminarea maximului a trei numere" =ax=(a2b)F(a2cFa@c)@(b2cFb@c); Exemplul 4 : -iprete relaia dintre dou valori ntregi" co0t11a; (a2b)Fco0t112@(a1b)Fco0t111@co0t11=;co0t11b;

4.15 Operatorul 6irgul


4e obicei' virgula este folosit ca delimitator pentru declaratori' variabile sau parametri ai unei funcii" O alt semnificaie este aceea c reprezint o expresie care evalueaz componentele sale n ordine de la st&nga la dreapta" Exemplul 1: int i=7,a,j=3; a=i,i+=j; /* a=7 / i=10 */ sau i+=j,a=i; /* i=10 / a=10 */ Exemplul 2: do0bl) x, /, t)=(; (x2/)F(t)=(=x, x=/, /=t)=()@/ ;

Informatic clasa a X-a /* are ca efect ordonarea cresc%toare a varia*ilelor x -i 3; ca re#ultat se o*&ine cea $ai $are dintre valorile x -i 3 */

<

S-ar putea să vă placă și