Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


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


Regula conversiilor implicite si precedenta operatorilor

c

+ Font mai mare | - Font mai mic





DOCUMENTE SIMILARE

Trimite pe Messenger
Introducere in programare orientata-obiect, mediul Visual C++, biblioteca de clase MFC
Instructiunea For
Continue
Else-If
Constante intregi
Apelul functiilor
Metoda combinata
Operatii cu liste
Grafuri - graf orientat
Tipuri de structuri de date - Tablouri

TERMENI importanti pentru acest document

Regula conversiilor implicite si precedenta operatorilor

Regula conversiilor implicite se aplica la evaluarea expresiilor. Ea actioneaza atunci cand un operator binar se aplica la doi operanzi de tipuri diferite. In acest caz, operandul de tip inferior se converteste spre tipul superior al celuilalt operand si rezultatul este de tip superior.




Inainte de toate se convertesc operanzii de tip char si enum in tipul int.

Daca operatorul curent se aplica la operanzi de acelasi tip, atunci se executa operatorul respectiv, iar tipul rezultatului coincide cu tipul comun al operanzilor. Daca rezultatul aplicarii operatorului reprezinta o valoare in afara limitelor tipului respectiv, atunci rezultatul este eronat (are loc o „depasire”).

Exemplu: Rezultatul impartiirii 7/3 este 2 si nu 2.5 deoarece cei doi operanzi sunt de tip intreg si prin urmare rezultatul (care este de tip real) este si el convertit la tipul intreg.

Daca operatorul binar se aplica la operanzi de tipuri diferite, atunci se face o conversie inainte de executia operatorului, conform algoritmului umator:

Daca unul din operanzi este de tip long double, atunci celalalt operand se converteste spre tipul long double iar tipul rezultatului aplicarii operatorului este de asemenea de tip long double.

Altfel, daca unul din operanzi este de tip double atunci celalalt operand se converteste spre tipul double iar tipul rezultatului aplicarii operatorului este de asemenea de tip double.

Altfel, daca unul din operanzi este de tip float atunci celalalt operand se converteste spre tipul float iar tipul rezultatului aplicarii operatorului este de asemenea de tip float.

Altfel, daca unul din operanzi este de tip unsigned long atunci celalalt operand se converteste spre tipul unsigned long iar tipul rezultatului aplicarii operatorului este de asemenea de tip unsigned long.

Altfel, daca unul din operanzi este de tip long atunci celalalt operand se converteste spre tipul long iar tipul rezultatului aplicarii operatorului este de asemenea de tip long.

Altfel, unul din operanzi trebuie sa fie de tip unsigned, celalalt de tip int si acesta se converteste spre tipul unsigned, iar tipul rezultatului aplicarii operatorului este de tip unsigned.

Precedentele operatorilor C sunt prezentate in tabelul urmator. Operatorii aflati pe aceeasi linie au aceeasi prioritate. Ei se asociaza de la stanga la dreapta, exceptand operatorii unari, conditionali si de atribuire, care se asociaza de la dreapta la stanga.

 

Precedenta

Operatorul



Inalta

Scazuta

() [ ] -> .

! ~ ++ -- - (type) * & sizeof

* / %

+ -

<< >>

< <= > >=

== !=

&

^

|

&&

||

? :

= += -= *= /=

,






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 581
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 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site