Operatorlar va ifodalar
Operatorlar — bu C dasturlash tilidagi ma'lumotlarga amallarni bajarishga mo‘ljallangan maxsus belgilar yoki so‘zlar. Operatorlar yordamida arifmetik, mantiqiy, taqqoslash, bitwise va boshqa turdagi operatsiyalar bajariladi.
1 Arifmetik Operatorlar
Arifmetik operatorlar — bu sonlar o‘rtasida matematik amallarni bajaradigan operatorlar. C tilida asosiy arifmetik operatorlar quyidagilardir:
+
(Qo‘shish): Ikkita sonning yig‘indisini hisoblaydi.-
(Ayrish): Ikkita sonning ayirmasini hisoblaydi.*
(Ko‘paytirish): Ikkita sonni ko‘paytiradi./
(Bo‘lish): Ikkita sonni bo‘ladi. Diqqat! Butun sonlar bilan bo‘lishda qoldiq qism e'tiborga olinmaydi.%
(Qoldiqni hisoblash): Butun sonlar bilan bo‘lganda qoldiqni qaytaradi. Masalan,10 % 3
natijasi1
bo‘ladi, chunki10 / 3
natijasida qoldiq1
.
Misol: Arifmetik operatorlar bilan ishlash
Chuqur tushuntirish:
Bo‘lish (
/
) operatori butun sonlar bilan ishlatilganda qoldiqni inkor qiladi. Masalan,10 / 3
natijasi3
bo‘ladi, lekin haqiqiy javob3.33
. C tilida butun sonlar bo‘lganda qoldiq o‘chiriladi. Agar o‘nlik sonlarni ishlatishni xohlasangiz,float
yokidouble
turlaridan foydalaning.%
operatori faqat butun sonlar bilan ishlaydi. Bu operator bo‘lish natijasidagi qoldiqni topadi. Masalan,10 % 3
natijasi1
bo‘ladi.
2 Mantiqiy Operatorlar
Mantiqiy operatorlar — bu mantiqiy ifodalar bilan ishlatiladigan operatorlar bo‘lib, ular natijada true
(haqiqat) yoki false
(yolg‘on) qiymatlarni qaytaradi. Bu operatorlar asosan shartli operatorlarda (if
, while
kabi) keng qo‘llaniladi.
&&
(AND operatori): Ikkala shart ham rost bo‘lsa (true
) natijatrue
bo‘ladi. Agar bitta shart yolg‘on bo‘lsa (false
), natijafalse
.||
(OR operatori): Har qanday bitta shart rost bo‘lsa, natijatrue
bo‘ladi. Faqat ikkala shart ham yolg‘on bo‘lsa natijafalse
.!
(NOT operatori): Bir shartning teskari qiymatini qaytaradi. Agar shart rost bo‘lsa,false
bo‘ladi va aksincha.
Misol: Mantiqiy operatorlar bilan ishlash
Chuqur tushuntirish:
AND (
&&
) operatori: Ikkala shartni bir vaqtda tekshiradi. Faqat ikkala shart ham rost bo‘lgandagina natija rost bo‘ladi.OR (
||
) operatori: Bir shart rost bo‘lsa, natija darhol rost bo‘ladi.NOT (
!
) operatori: Shartni teskari qiymatga o‘zgartiradi. Agary
0 bo‘lsa,!y
true
bo‘ladi, chunki0
mantiqanfalse
deb hisoblanadi.
3 Taqqoslash Operatorlari
Taqqoslash operatorlari ikki o‘zgaruvchining qiymatlarini solishtiradi va mantiqiy natija qaytaradi (true
yoki false
). Taqqoslash operatorlari odatda shartli ifodalarda ishlatiladi.
==
(Tenglik): Ikkita o‘zgaruvchining qiymatlari teng bo‘lsa, natijatrue
bo‘ladi.!=
(Teng emas): Ikkita o‘zgaruvchi teng bo‘lmasa, natijatrue
.>
(Katta): Chap tomondagi o‘zgaruvchi o‘ng tomondagi o‘zgaruvchidan katta bo‘lsa,true
.<
(Kichik): Chap tomondagi o‘zgaruvchi kichik bo‘lsa,true
.>=
(Katta yoki teng): Chap o‘zgaruvchi katta yoki teng bo‘lsa,true
.<=
(Kichik yoki teng): Chap o‘zgaruvchi kichik yoki teng bo‘lsa,true
.
Misol: Taqqoslash operatorlari bilan ishlash
Chuqur tushuntirish:
Tenglik operatori (
==
): Bu operator bir xil qiymatlar bilan ishlatilgandatrue
qaytaradi. Diqqat!=
bu qiymat berish operatori,==
esa tenglikni tekshiradi.Teng emas operatori (
!=
): O‘zgaruvchilar teng bo‘lmasa, natija rost bo‘ladi.
4 Bitwise Operatorlar
Bitwise operatorlar raqamlarning bit darajasidagi manipulyatsiyalarini amalga oshiradi. Har bir raqam ikki lik sanoq sistemasida (0 va 1) ko‘rsatilgan bitlardan iborat bo‘ladi. Bitwise operatorlar bu bitlar bilan ishlaydi.
&
(Bitwise AND): Har bir bit juftligi uchun AND operatsiyasini bajaradi. Ikkala bit 1 bo‘lgandagina natija 1 bo‘ladi.|
(Bitwise OR): Har bir bit juftligi uchun OR operatsiyasini bajaradi. Har qanday bitta bit 1 bo‘lsa, natija 1 bo‘ladi.^
(Bitwise XOR): Har bir bit juftligi uchun XOR operatsiyasini bajaradi. Bitlar har xil bo‘lsa, natija 1 bo‘ladi.~
(Bitwise NOT): Har bir bitning qiymatini teskari qiladi (1 ni 0 ga, 0 ni 1 ga o‘zgartiradi).<<
(Left Shift): Bitlarni chapga siljitadi va bo‘sh joylarga 0 joylashtiradi.>>
(Right Shift): Bitlarni o‘ngga siljitadi.
Misol: Bitwise operatorlar bilan ishlash
Chuqur tushuntirish:
Bitwise operatorlar asosan tizim darajasidagi dasturlashda qo‘llaniladi. Masalan, apparat bilan ishlashda yoki quyi darajadagi manipulyatsiyalarni bajarishda.
Chapga va o‘ngga siljitish operatorlari ma'lumotlarni ko‘paytirish va bo‘lish bilan ishlatiladi. Masalan, chapga siljitish qiymatni ikki marta ko‘paytiradi.
5 Ifodalar va ularning ustuvorligi
Ifodalar bir nechta operatorlar ishtirok etganda ularning bajarilish tartibi operatorlarning ustuvorligi va birinchi bajarilish tartibi (assotsiativlik) orqali boshqariladi.
Ustuvorlik darajasi:
Qavslar (
()
): Har doim birinchi bajariladi.Ko‘paytirish (
*
), bo‘lish (/
), qoldiq (%
): Qo‘shish va ayrishdan ustun.Qo‘shish (
+
), ayrish (-
): Ustuvorlik jihatidan pastroq.
Misol: Ustuvorlik va ifodalar
Chuqur tushuntirish:
Qavslar operatorlarni ustunlik jihatidan nazorat qilishga yordam beradi. Kodda matematik ifodalarni aniq qilish uchun qavslar keng ishlatiladi.
Ko‘paytirish va bo‘lish operatorlari har doim qo‘shish va ayrishdan ustun turadi, shuning uchun ularni qavslar bilan boshqarish kerak bo‘lishi mumkin.
GCC Bilan Xatolarni Tuzatish
6 Sintaksis va kompilyatsiya xatolarini topish
GCC (GNU Compiler Collection) yordamida kodni kompilyatsiya qilishda ko‘pincha xatolar yoki ogohlantirishlar ko‘rinadi. Xatolar asosan sintaksis xatolari bo‘ladi, ya'ni noto‘g‘ri yozilgan kod qismi. GCC bu xatolarni aniqlab, to‘g‘ri kodni tuzatishga yordam beradi.
Misol: Xato bilan noto‘g‘ri kod
Agar bu kodni kompilyatsiya qilsak, GCC quyidagicha xatolarni ko‘rsatadi:
Bu xatoni tuzatish uchun quyidagilarni qo‘shamiz:
printf() funksiyasida qavsni yopish va nuqta-vergulni (
;
) qo‘shish kerak.
7 Kompilyatsiya qilish jarayonida xatolarni oldini olish
Kodingizda xatolarni oldini olish uchun GCC ning foydali bayroqlaridan foydalanishingiz mumkin:
-Wall
: Barcha umumiy ogohlantirishlarni ko‘rsatadi.-Werror
: Ogohlantirishlarni xatoga aylantiradi.
Agar kodda ogohlantirishlar bo‘lsa, bu buyruq sizga xatoliklarni ko‘rsatadi va ulardan qochishga yordam beradi.
Ushbu chuqur qo‘llanma yordamida siz C dasturlash tilidagi operatorlar, ifodalar va GCC orqali xatolarni tuzatish haqida kengroq tushunchaga ega bo‘lasiz. Har bir tushuncha texnik jihatdan batafsil ko‘rib chiqildi va amaliyot uchun misollar bilan to‘ldirildi. Iloji boricha buni yaxshilab o'rganib chiqing bu sizga kelajakda kerak bo'ladi.
Last updated