C da Operatorlar(5-dars)

·

11 min read

Ushbu qo'llanmada siz C dagi turli operatorlar haqida bilib olasiz.

Operator bu qiymat yoki o'zgaruvchida ishlaydigan belgidir. Masalan: + bu qo'shilishni amalga oshiruvchi operator. C da turli xil operatsiyalarni bajarish uchun keng ko'lamli operatorlarga ega.

C Arifmetik operatorlar

Arifmetik operatorlar sonli qiymatlarda (variablelar va constanttantlar) qo'shish, ayirish, ko'paytirish, bo'lish va boshqalar kabi matematik operatsiyalarni bajaradi.

Operatorlar                   Operatorlarning ma'nosi
+                                    qo'shish
-                                    ayirish
*                                    ko'paytirish
/                                    bo'lish
%                                    mod olish (ya'ni bir sonni boshqa songa bo'lganingizda chiqadigan qoldiq)

1-misol: Arifmetik operatorlar

// Arifmetik operatorlarning ishlashi
# include <stdio.h>
int main ()
{
    int a = 9, b = 4, c;

    c = a + b;
    printf ("a + b =% d \ n", c);
    c = a-b;
    printf ("a-b =% d \ n", c);
    c = a * b;
    printf ("a * b =% d \ n", c);
    c = a / b;
    printf ("a / b =% d \ n", c);
    c = a% b;
    printf ("a ni b ga bo'lganimizda qoldiq %d ga teng", c);

    qaytish 0;
}

Natija

a+b = 13
a-b = 5
a*b = 36
a/b = 2
a ni b ga bo'lganimizda qoldiq 1 ga teng

+, - va * operatorlari qo'shish, ayirish va ko'paytirish siz kutganingizdek mos ravishda hisoblab chiqadi.

Oddiy hisoblashda 9/4 = 2.25. Lekin natija 2 ga teng.

Buning sababi, a va b o'zgaruvchilar ikkalasi ham integer(butun) sonlardir. Demak, natija ham integer (butun) songa teng bo'ladi. Kompilyator . dan keyingi sonlarni e'tiborsiz qoldiradi va 2.25 o'rniga 2 -javobni ko'rsatadi.

Modul operatori % qoldiqni hisoblab chiqadi. a = 9 ni b = 4 ga bo‘lganda, qoldiq 1 ga teng. % Operatorini faqat butun sonlar bilan foydalanish mumkin.

Aytaylik a = 5.0, b = 2.0, c = 5 va d = 2 ga teng bo'lsa. C da:

// O'zgaruvchilarda biri float o'zgaruvchidir va natija ham float bilan chiqadi:
a/b = 2.5  
a/d = 2.5  
c/b = 2.5  

// Ikkala o'zgaruvchi ham integer va natija ham integer bilan chiqadi:
c/d = 2

C da Increment va Decrement operatorlari

  • Increment - oshirish
  • Decrement - kamaytirish

C da const va variable qiymatlarini 1 ga o'zgartirish uchun ikkita operator mavjud: increment ++ va decrement -- operatorlari.

###2-misol: Increment va Decrement Operatorlari

// Increment and decrement operatorlarning ishlatilishi
#include <stdio.h>
int main()
{
    int a = 10, b = 100;
    float c = 10.5, d = 100.5;

    printf("++a = %d \n", ++a);
    printf("--b = %d \n", --b);
    printf("++c = %f \n", ++c);
    printf("--d = %f \n", --d);

    return 0;
}

Natija:

++a = 11
--b = 99
++c = 11.500000
--d = 99.500000

Bu yerda ++ va -- operatorlari prefiks sifatida ishlatiladi. a++ aning qiymatini 1 ga oshiryabdi --b esa bning qiymatini 1 ga kamaytiryabdi.

C Assignment Operatorlari (Tayinlash Operatorlari)

O'zgaruvchiga qiymat berish uchun tayinlash operatori ishlatiladi. Eng keng tarqalgan tayinlash operatori =

Operator                       Misol uchun                    Bir xill
 =                              a = b                          a = b
 +=                             a += b                         a = a+b
 -=                             a -= b                         a = a-b
 *=                             a *= b                         a = a*b
 /=                             a /= b                         a = a/b
 %=                             a %= b                         a = a%b

3-misol: Assigment operatorlari

// Assignment operatorlarining ishlashi
#include <stdio.h>
int main()
{
    int a = 5, c;
    c = a;      // c  5 ga teng
    printf("c = %d\n", c);
    c += a;     // c 10 ga teng
    printf("c = %d\n", c);
    c -= a;     // c 5 ga teng
    printf("c = %d\n", c);
    c *= a;     // c 25 ga teng
    printf("c = %d\n", c);
    c /= a;     // c 5 ga teng
    printf("c = %d\n", c);
    c %= a;     // c 0 ga teng
    printf("c = %d\n", c);

    return 0;
}

Natija

c = 5 
c = 10 
c = 5 
c = 25 
c = 5 
c = 0

C Relational Operatorlari

Sodda qilib aytganda, Relational operator ikkita operand o'rtasidagi munosabatni tekshiradi. Agar munosabat to'g'ri bo'lsa, u 1 ni qaytaradi agar munosabat noto'g'ri bo'lsa, 0 qiymatini qaytaradi. Relational operatorlari expressionlarda(shartlar) berilayotganda yoki looplarda ishlatiladi:

Operator      Operatorning ma'nosi         Exampellar
==              Ga teng                    5 == 3  0 qiymat  qaytaradi
>               Undan kattaroq             5 > 3   1 qiymat qaytaradi
<               Undan kichiqroq            5 < 3   0 qiymat qaytaradi
!=              Ga teng emas               5 != 3  1 qiymat qaytaradi
>=           Undan kattaroq yoki Ga teng   5 >=  3 1 qiymat qaytaradi
<=           Undan kattaroq yoki Ga teng   5 <= 3  0 qiymat qaytradi

4-misol: Relation operatorlar

#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10;

    printf("%d == %d is %d \n", a, b, a == b);
    printf("%d == %d is %d \n", a, c, a == c);
    printf("%d > %d is %d \n", a, b, a > b);
    printf("%d > %d is %d \n", a, c, a > c);
    printf("%d < %d is %d \n", a, b, a < b);
    printf("%d < %d is %d \n", a, c, a < c);
    printf("%d != %d is %d \n", a, b, a != b);
    printf("%d != %d is %d \n", a, c, a != c);
    printf("%d >= %d is %d \n", a, b, a >= b);
    printf("%d >= %d is %d \n", a, c, a >= c);
    printf("%d <= %d is %d \n", a, b, a <= b);
    printf("%d <= %d is %d \n", a, c, a <= c);

    return 0;
}

Natija

5 == 5 is 1
5 == 10 is 0
5 > 5 is 0
5 > 10 is 0
5 < 5 is 0
5 < 10 is 1
5 != 5 is 0
5 != 10 is 1
5 >= 5 is 1
5 >= 10 is 0
5 <= 5 is 1
5 <= 10 is 1

C da Logical Operatorlar(Mantiqiy operatorlar)

Mantiqiy operatorni o'z ichiga olgan ifoda, natijaning to'g'ri yoki noto'g'ri ekanligiga qarab 0 yoki 1 ni qaytaradi. Mantiqiy operatorlar odatda C da expressionlarda (if elseda shart yozganimizda)ishlatiladi.

Operator            Ma`nosi                              
 &&               Logical and operatori.                
                 Barcha operandlar true bo'lsagina 
                 true

||               Logical or operatori. 
                 Bitta operand true bo'lsa ham true

!                Logical not operatori. Operand 0 ga teng bo'lgan taqdirdagina to'g'ri

5-misol: Logical Operatorlar

// logical operatorlarning ishlashi

#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10, result;

    result = (a == b) && (c > b);
    printf("(a == b) && (c > b) is %d \n", result);

    result = (a == b) && (c < b);
    printf("(a == b) && (c < b) is %d \n", result);

    result = (a == b) || (c < b);
    printf("(a == b) || (c < b) is %d \n", result);

    result = (a != b) || (c < b);
    printf("(a != b) || (c < b) is %d \n", result);

    result = !(a != b);
    printf("!(a != b) is %d \n", result);

    result = !(a == b);
    printf("!(a == b) is %d \n", result);

    return 0;
}

Natija

(a == b) && (c > b) is 1 
(a == b) && (c < b) is 0 
(a == b) || (c < b) is 1 
(a != b) || (c < b) is 0 
!(a != b) is 1 
!(a == b) is 0

Mantiqiy operatordagi dasturining izohi:

  • (a == b) && (c > 5) 1 bo'ladi, chunki ikkala operand (a == b) va (c > b) 1 bo'ladi(ya'ni true). _ (a == b) && (c < b) 0 bo'ladi chunki (c < b) operand 0 ga teng(ya'ni false qiymatga ega)

  • (a == b) || (c < b) 1 bo'ladi chunki (a = b) operand 1 dir(ya'ni true)

  • (a != b) || (c < b) 0 bo'ladi chunki (a == b) operand 1 dir. Demak, !(a == b) 0 dir(false).

Comma operatori

Bog'liq ifodalarni bir-biriga bog'lash uchun Comma operatori ishlatiladi. Masalan:

int a, c = 5, d;

Sizeof operatori(o'lchov operatori)

Sizeof - bu ma'lumotlar (constantlar, variablelar)hajmini qaytaradigan operatoridir.

6-misol: Sizeof Operatori

#include <stdio.h>
int main()
{
    int a;
    float b;
    double c;
    char d;
    printf("Size of int=%lu bytes\n",sizeof(a));
    printf("Size of float=%lu bytes\n",sizeof(b));
    printf("Size of double=%lu bytes\n",sizeof(c));
    printf("Size of char=%lu byte\n",sizeof(d));

    return 0;
}

Natija

Size of int = 4 bytes
Size of float = 4 bytes
Size of double = 8 bytes
Size of char = 1 byte

Ternary operatori ?:, Reference operator &, dereference operator * va member selection operatori -> kabi boshqa operatorlar keyingi o'quv qo'llanmalarida o'rganamiz.

Did you find this article valuable?

Support Asadbek by becoming a sponsor. Any amount is appreciated!