Pregled operatorjev in izrazov
Posebni operatorji
Kombinirani prireditveni operatorji:
Splošna oblika:
izraz1 op= izraz2;
Pomeni isto kot:
izraz1 = izraz1 op izraz2;
(velja za operatorje: + - * / % << & | ^)
Pogojni operator:
Splošna oblika:
izraz1 ? izraz2 : izraz3
Pomen:
Če je vrednost izraz1 TRUE (ni nič), potem je celotni izraz po vrednosti
in tipu enak izrazu2 sicer je celotni izraz po tipu in vrednosti enak izrazu3
Operator vejica:
Splošna oblika:
izraz1 , izraz2
Pomen:
Ocenita se oba izraza, celoten izraz ima vrednost
in tip desnega izraza.
Izrazi
Imajo tip in vrednost. So kombinacija operandov in operatorjev.
Primer
pogoj = a < b;
rezultat = (a > 4) < 6;
stanje = !(a < b);
rezultat = x >> 2;
++a; /* kar je enako a = a+1 */;
a = --b - 2;
predznak = (x < 0) ? -1 : 1 ;
Nepravilna / pravilna uporaba operatorjev:
Izraze pišemo pregledno in nedvoumno!
Spomnimo se slabega primera
Konverzija tipa izraza
Avtomatična:
Do avtomatične konverzije pride med tipi:char,
short int, int
Potrebna:
V naslednjih dveh primerih imejmo dve spremenljivki:
int a;
float b;
Jasno je, da mora priti v naslednjem stavku do konverzije tipa izraza iz
float
v int:
a = b;
Zahtevana:
V naslednjem primeru konverzijo eksplicitno zahtevamo:
a = (int) b;
Konverzija tipa izraza po standardu ANSI C
Če je eden od operandov
long
double, bo tak tudi drugi.
Sicer če je en operand
double,
bo tak tudi drugi.
Sicer če je en operand
float,
bo tak tudi drugi.
Operand tipa char
ali short int postane tipa int.
Če je en operand
tipa
long int, bo tak tudi drugi.
Sicer pa bo izraz
tipa
int.