Va prezentam inca un set de 7 intrebari centrate pe limbajul de programare C, care vor necesita un nivel mediu de cunostinte.
Asteptam sugestiile sau intrebarile dumneavoastra pe rubrica de comentarii.
Related posts:
- Intrebari si raspunsuri pentru interviu C
- Intrebari si raspunsuri pentru interviu C
- Intrebari si raspunsuri pentru interviurile C
- Intrebari tricky pentru interviurile C in Linux
- Intrebari si raspunsuri pentru interviurile Java



La prima intrebare valoarea intoarsa va fi 3 + 1+ (4)=8
Termenul x++ se evalueaza mai intai, deci are valoarea 3 si apoi se incrementeaza, deci dupa returnarea valorii va fi egal cu 4. Al doilea termen ++x va avea la momentul evaluarii valoarea 4 (din cauza primei incrementari) la care se adauga 1 datorita operatorului de preincrementare, deci al doilea termen va avea valoarea 5.
Puteti exemplifica in ce fel compilatoare diferite pot intoarce valori diferite?
Multumesc.
Salut Paul,
Ai dreptate x++ va fi evaluat la 4 insa ++x va fi evaluat tot la 4, incrementarea facanduse dupa utilizarea valorii lui x, deci expresia ia valoarea 8.
INSA aceasta utilizare a operatorilor de incrementarea/pre-incrementare nu este recomandata deoarece compilatorul poate face diferite optimizari. Cum operatia de adunare este comutativa expresia de mai sus poate fi interpretata de compilator asa:
++x + x++ ; ceea ce ar duce la urmatorul rezultat: 3 + 4 = 7 (++x este 3, deoarece x se incrementeaza dupa operatia curenta, iar x++ este 4).