Operátory určují co se má s proměnnými a konstantami provést. 1)
Jedná se o základní, ale zřejmě nejčastěji používaný operátor a značí se rovnítkem =.
int x; x = 7; printf("%d\n",x); // output: "7"
Proměnné x, je přiřazena hodnota 7. Při výpisu se tedy zobrazí „7“.
int x,y,z; x = 7; //proměnné x je přiřazena hodnota 7 (x=7;y=0,z=0) y = x; //proměnné y je přiřazena hodnota proměnné x, tedy 7 (x=7;y=7;z=0) z = 3; //proměnné z je přiřazena hodnota 3 (x=7;y=7;z=3) x = y + z; //proměnné x je přiřazen součet hodnot proměnných y a z (x=10,y=7,z=3) printf("%d\n",x);
int x,y,w,z; x = y = w = z = 7; printf("%d",x);
x je samozřejmě 7. | OPERÁTOR | VÝZNAM |
|---|---|
| + | sčítání |
| - | odčítání |
| * | násobení |
| / | dělení |
| % | modulo (zbytek po dělení) |
int x; x = 10 % 3; printf("%d\n",x); // output: "1"
x je přiřazen výsledek operace 10 % 3 - zbytek po dělení třemi. (19 % 2 = 1; 22 % 2 = 0).x += y; má stejný význam jako: x = x + y;-=, *=, /=, %=, »=, «=, &=, ^=, |=
* Inkrementace se značí ++ (např.: a++;) a dekrementace – (např.: a–;) a používá se ke zvýšení nebo zvýšení hodnoty proměnné o 1.
x++;
Tento zápis má stejný význam jako zápis x = x + 1;.
| OPERÁTOR | VÝZNAM |
|---|---|
| > | větší než |
| < | menší než |
| >= | větší nebo rovno |
| ⇐ | menší nebo rovno |
| == | je rovno |
| != | není rovno |
int x,y; x = 4; y = 2; x <= y; //nepravda x > y; //pravda x == y+2; //pravda x/2 != y; //nepravda
Operátor = neslouží pro porovnání rovnosti proměnných. Je třeba použít operátor ==.
| OPERÁTOR | VÝZNAM |
|---|---|
| && | spojka a (and) |
| || | spojka nebo (or) |
| ! | negace |
Příklad: Mějme následující složený výrok:
int x,y; x = 1; y = 2; ((x < y) && (y != x));
&& nám jednoduché výroky (x < y) a (y != x) spojuje v jeden složený výrok. (x < y) dává výslednou hodnotu pravda stejně jako výrok (y != x).| A | B | A && B | A || B |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 |
&& pravdivý, musí být pravdivé i všechny jednoduché výroky ze kterých je je tento výrok složen.|| vyplývá, že stačí aby byl pravdivý pouze jeden jednoduchý výrok.int x,y; x = 1; y = 2; !(y > x);
Výslednou hodnotou je nepravda a to i přesto, že výrok 2 > 1 je pravdivý. Výsledná hodnota výroku je totiž negována.
int x; x = 2 + 3 * 4; printf("%d\n",x);
int x; x = (2 + 3) * 4; cout << x << endl; Výsledkem je nyní číslo 20.