Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte 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



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 | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 808
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