Operatori în C

În acest tutorial, veți afla despre diferiți operatori din programarea C cu ajutorul exemplelor.

Un operator este un simbol care operează pe o valoare sau o variabilă. De exemplu: + este un operator care efectuează adăugarea.

C are o gamă largă de operatori pentru a efectua diverse operațiuni.

C Operatori aritmetici

Un operator aritmetic efectuează operații matematice, cum ar fi adunarea, scăderea, înmulțirea, împărțirea etc. pe valori numerice (constante și variabile).

Operator Înțeles Operator
+ adaos sau plus unar
- scădere sau minus unar
* multiplicare
/ Divizia
% rest după diviziune (diviziune modulo)

Exemplul 1: Operatori aritmetici

 // Working of arithmetic operators #include int main() ( int a = 9,b = 4, c; c = a+b; printf("a+b = %d ",c); c = a-b; printf("a-b = %d ",c); c = a*b; printf("a*b = %d ",c); c = a/b; printf("a/b = %d ",c); c = a%b; printf("Remainder when a divided by b = %d ",c); return 0; )

Ieșire

 a + b = 13 ab = 5 a * b = 36 a / b = 2 Rămâne când a împărțit la b = 1

Operatorii +, -și *calculeaza adunare, scădere, înmulțire și , respectiv , pe măsură ce s - ar fi așteptat.

În calcul normal 9/4 = 2.25,. Cu toate acestea, ieșirea se află 2în program.

Aceasta se datorează faptului că atât variabilele a și b sunt întregi. Prin urmare, ieșirea este, de asemenea, un număr întreg. Compilatorul neglijează termenul după punctul zecimal și arată răspunsul 2în loc de 2.25.

Operatorul modulo %calculează restul. Când a=9este împărțit la b=4, restul este 1. %Operatorul poate fi utilizat numai cu numere întregi.

Să presupunem a = 5.0, b = 2.0, c = 5și d = 2. Apoi, în programarea C,

 // Fie unul dintre operanzi este un număr în virgulă mobilă a / b = 2,5 a / d = 2,5 c / b = 2,5 // Ambii operanzi sunt numere întregi c / d = 2

C Operatori de creștere și descreștere

Programarea C are doi operatori increment ++și decrement --pentru a schimba valoarea unui operand (constant sau variabil) cu 1.

Incrementul ++crește valoarea cu 1, în timp ce scăderea --scade valoarea cu 1. Acești doi operatori sunt operatori unari, adică operează doar pe un singur operand.

Exemplul 2: Operatori de creștere și descreștere

 // Working of increment and decrement operators #include int main() ( int a = 10, b = 100; float c = 10.5, d = 100.5; printf("++a = %d ", ++a); printf("--b = %d ", --b); printf("++c = %f ", ++c); printf("--d = %f ", --d); return 0; )

Ieșire

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

Aici, operatorii ++și --sunt folosiți ca prefixe. Acești doi operatori pot fi folosiți și ca postfixe ca a++și a--. Accesați această pagină pentru a afla mai multe despre cum funcționează operatorii de creștere și descreștere atunci când sunt folosiți ca postfix.

C Operatori de misiune

Un operator de alocare este utilizat pentru atribuirea unei valori unei variabile. Cel mai comun operator de atribuire este=

Operator Exemplu La fel ca
= a = b a = b
+ = a + = b a = a + b
- = a - = b a = ab
* = a * = b a = a * b
/ = a / = b a = a / b
% = a% = b a = a% b

Exemplul 3: Operatori de atribuire

 // Working of assignment operators #include int main() ( int a = 5, c; c = a; // c is 5 printf("c = %d", c); c += a; // c is 10 printf("c = %d", c); c -= a; // c is 5 printf("c = %d", c); c *= a; // c is 25 printf("c = %d", c); c /= a; // c is 5 printf("c = %d", c); c %= a; // c = 0 printf("c = %d", c); return 0; )

Ieșire

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

C Operatori relaționali

Un operator relațional verifică relația dintre doi operanzi. Dacă relația este adevărată, ea returnează 1; dacă relația este falsă, returnează valoarea 0.

Operatorii relaționali sunt utilizați în luarea deciziilor și în bucle.

Operator Înțeles Operator Exemplu
== Egal cu 5 == 3 este evaluat la 0
> Mai mare ca 5> 3 este evaluat la 1
< Mai puțin decât 5 < 3 este evaluat la 0
! = Nu este egal cu 5 != 3 este evaluat la 1
> = Mai mare sau egal cu 5>= 3 este evaluat la 1
<= Mai mic sau egal cu 5 <= 3 este evaluat la 0

Exemplul 4: Operatori relaționali

 // Working of relational operators #include int main() ( int a = 5, b = 5, c = 10; printf("%d == %d is %d ", a, b, a == b); printf("%d == %d is %d ", a, c, a == c); printf("%d> %d is %d ", a, b, a> b); printf("%d> %d is %d ", a, c, a> c); printf("%d < %d is %d ", a, b, a < b); printf("%d < %d is %d ", a, c, a = %d is %d ", a, b, a>= b); printf("%d>= %d is %d ", a, c, a>= c); printf("%d <= %d is %d ", a, b, a <= b); printf("%d <= %d is %d ", a, c, a <= c); return 0; )

Ieșire

 5 == 5 este 1 5 == 10 este 0 5> 5 este 0 5> 10 este 0 5 <5 este 0 5 = 5 este 1 5> = 10 este 0 5 <= 5 este 1 5 <= 10 este 1 

C Operatori logici

O expresie care conține operator logic returnează fie 0, fie 1, în funcție de expresia rezultată adevărată sau falsă. Operatorii logici sunt utilizați în mod obișnuit în luarea deciziilor în programarea C.

Operator Sens Exemplu
&& Logic ȘI. Adevărat numai dacă toți operanzii sunt adevărați Dacă c = 5 și d = 2 atunci, expresia ((c==5) && (d>5))este egală cu 0.
|| OR logic. Adevărat numai dacă unul dintre operandi este adevărat Dacă c = 5 și d = 2 atunci, expresia ((c==5) || (d>5))este egală cu 1.
! Logic NU. Adevărat numai dacă operandul este 0 If c = 5 then, expression !(c==5) equals to 0.

Example 5: Logical Operators

 // Working of logical operators #include int main() ( int a = 5, b = 5, c = 10, result; result = (a == b) && (c> b); printf("(a == b) && (c> b) is %d ", result); result = (a == b) && (c < b); printf("(a == b) && (c < b) is %d ", result); result = (a == b) || (c < b); printf("(a == b) || (c < b) is %d ", result); result = (a != b) || (c < b); printf("(a != b) || (c < b) is %d ", result); result = !(a != b); printf("!(a != b) is %d ", result); result = !(a == b); printf("!(a == b) is %d ", result); return 0; ) 

Output

 (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 

Explanation of logical operator program

  • (a == b) && (c> 5) evaluates to 1 because both operands (a == b) and (c> b) is 1 (true).
  • (a == b) && (c < b) evaluates to 0 because operand (c < b) is 0 (false).
  • (a == b) || (c < b) evaluates to 1 because (a = b) is 1 (true).
  • (a != b) || (c < b) evaluates to 0 because both operand (a != b) and (c < b) are 0 (false).
  • !(a != b) evaluates to 1 because operand (a != b) is 0 (false). Hence, !(a != b) is 1 (true).
  • !(a == b) evaluates to 0 because (a == b) is 1 (true). Hence, !(a == b) is 0 (false).

C Bitwise Operators

During computation, mathematical operations like: addition, subtraction, multiplication, division, etc are converted to bit-level which makes processing faster and saves power.

Bitwise operators are used in C programming to perform bit-level operations.

Operators Meaning of operators
& Bitwise AND
| Bitwise OR
^ Bitwise exclusive OR
~ Bitwise complement
<< Shift left
>> Shift right

Visit bitwise operator in C to learn more.

Other Operators

Comma Operator

Comma operators are used to link related expressions together. For example:

 int a, c = 5, d;

The sizeof operator

The sizeof is a unary operator that returns the size of data (constants, variables, array, structure, etc).

Example 6: sizeof Operator

 #include int main() ( int a; float b; double c; char d; printf("Size of int=%lu bytes",sizeof(a)); printf("Size of float=%lu bytes",sizeof(b)); printf("Size of double=%lu bytes",sizeof(c)); printf("Size of char=%lu byte",sizeof(d)); return 0; )

Output

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

Alți operatori , cum ar fi operatorul ternar ?:, operatorul de referință &, operatorul dereference *și operatorul membru de selecție ->vor fi discutate în tutoriale ulterioare.

Articole interesante...