1. Sissejuhatus
C-keel on laialdaselt kasutatav süsteemide programmeerimises ja manussüsteemide arenduses. Operaatorid on selle keele üks olulisemaid elemente, mis võimaldavad erinevaid arvutusi ja loogilisi operatsioone. Selles artiklis selgitame C-keele operaatorite kasutamist alates põhitõdedest kuni edasijõudnute tehnikate, vigade käsitlemise ja optimeerimiseni. Operaatorite sügav mõistmine aitab programmeerijatel kirjutada tõhusamat koodi, vältida vigu ja parandada jõudlust.
Samuti käsitleme artikli lõpus vigade käsitlemise ja optimeerimise tehnikaid, mis on kasulikud reaalses arenduskeskkonnas. Pärast selle artikli lugemist tunnete end kindlalt C-keele operaatorite kasutamisel.

2. Operaatorite põhialused ja liigid
Mis on operaator?
Operaatorid on sümbolid, mida kasutatakse C-keeles andmete töötlemiseks. C-keeles on mitut tüüpi operaatoreid, sealhulgas aritmeetilised, omistus-, võrdlus- ja loogikaoperaatorid. Need on hädavajalikud programmi loogika ülesehitamiseks.
Aritmeetilised operaatorid
Aritmeetilised operaatorid teostavad põhitaseme matemaatilisi tehteid.
+
(liitmine):a + b
→ liidab kaks arvu.-
(lahutamine):a - b
→ lahutab ühe arvu teisest.*
(korrutamine):a * b
→ korrutab kaks arvu./
(jagamine):a / b
→ jagab ühe arvu teisega.%
(jääk):a % b
→ tagastab jäägi, kuia
jagatakseb
-ga.
Omistusoperaatorid
Omistusoperaatorid määravad väärtusi muutujatele.
=
(omistamine):a = 5
→ määrab muutujalea
väärtuse 5.+=
(liitomistus):a += 2
→ lisaba
-le 2 ja salvestab tulemusea
-sse.-=
(lahutamisomistus):a -= 1
→ lahutaba
-st 1 ja salvestab tulemusea
-sse.

Võrdlusoperaatorid
Võrdlusoperaatorid võrdlevad kahte väärtust ja tagastavad tõese või väär väärtuse.
==
(võrdne):a == b
→ tagastab tõese, kuia
jab
on võrdsed.!=
(ei ole võrdne):a != b
→ tagastab tõese, kuia
jab
ei ole võrdsed.>
(suurem kui):a > b
→ tagastab tõese, kuia
on suurem kuib
.
4. Operaatorite prioriteet ja assotsiatiivsus
Operaatorite prioriteet määrab, millises järjekorras väljendis olevad tehteid sooritatakse. Assotsiatiivsus määrab, kas sama prioriteediga operaatorid arvutatakse vasakult paremale või paremalt vasakule.
Prioriteedi näide
int a = 2 + 3 * 4; // Tulemus on 14
Selles näites toimub korrutamine enne liitmist, kuna korrutamisel on kõrgem prioriteet. Kui soovite liitmist enne sooritada, kasutage sulgusid:
int a = (2 + 3) * 4; // Tulemus on 20
Operaatorite prioriteetide tabel
Prioriteet | Operaator |
---|---|
Kõrge | ++ , -- (inkrement, dekrement) |
Keskmine | * , / , % (korrutamine, jagamine, jääk) |
Madal | + , - (liitmine, lahutamine) |
Assotsiatiivsuse reeglid
C-keele omistusoperaator =
on parempoolselt assotsiatiivne. See tähendab, et kui mitu omistust toimuvad järjestikku, teostatakse need paremalt vasakule.
int a, b, c;
a = b = c = 5; // Kõik muutujad saavad väärtuse 5
Siin toimub kõigepealt c = 5
, seejärel b = c
ja lõpuks a = b
.

5. Operaatorite rakendamine: bittoperaatorid ja nihkeoperaatorid
Bittoperaatorid
Bittoperaatorid võimaldavad andmete manipuleerimist bittide tasemel. Neid kasutatakse sageli madala taseme programmeerimises ja manussüsteemides.
int a = 5; // 0101
int b = 3; // 0011
int result = a & b; // Tulemus on 0001 (1)
Selles näites kasutatakse bittoperaatorit &
(loogiline JA), et leida kahe numbri bititaseme lõikumine.
Nihkeoperaatorid
Nihkeoperaatorid nihutavad arvu bitte vasakule või paremale. Neid kasutatakse sageli kiiremate matemaatiliste operatsioonide tegemiseks.
int a = 5; // 0101
int result = a << 1; // 1010 (10) → a korrutatakse 2-ga
Vasak nihkeoperaator (<<
) korrutab arvu 2-ga, samas kui parem nihkeoperaator (>>
) jagab selle 2-ga.

6. Vea käsitlemine ja optimeerimine operaatoritega
Nulliga jagamise vea käsitlemine
Nulliga jagamine põhjustab C-keeles programmi krahhi. Seetõttu on oluline enne jagamisoperatsiooni kontrollida, kas jagaja on null.
#include <stdio.h>
int main() {
int a = 10;
int b = 0;
if (b != 0) {
printf("Jagamise tulemus: %d\n", a / b);
} else {
printf("Viga: Nulliga ei saa jagada.\n");
}
return 0;
}
7. Kokkuvõte
Selles artiklis käsitlesime C-keele operaatorite põhialuseid, nende rakendamist ning ka vigade käsitlemist ja optimeerimist. Operaatorid on programmeerimise oluline osa, mis aitab loogikat üles ehitada ning koodi tõhusust parandada.
Erilist tähelepanu pöörasime nulliga jagamise ja ülevoolu vigade käsitlemisele ning optimeerimistehnikatele, nagu nihkeoperaatorite kasutamine kiiremate arvutuste jaoks.
Järgmine samm: Soovitame edasi uurida C-keele täpsemaid teemasid, nagu pointerid ja massiivid, et oma teadmisi veelgi täiendada ja õppida keerukamat andmetöötlust ning mäluhaldust.