Оператори в C

У цьому посібнику ви дізнаєтеся про різні оператори програмування на С на прикладах.

Оператор - це символ, який оперує значенням або змінною. Наприклад: + - це оператор, який виконує додавання.

C має широке коло операторів для виконання різних операцій.

C Арифметичні оператори

Арифметичний оператор виконує математичні операції, такі як додавання, віднімання, множення, ділення тощо над числовими значеннями (константами та змінними).

Оператор Значення оператора
+ додаток або одинарний плюс
- віднімання або одинарний мінус
* множення
/ поділ
% залишок після поділу (модульне ділення)

Приклад 1: Арифметичні оператори

 // 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; )

Вихідні дані

 a + b = 13 ab = 5 a * b = 36 a / b = 2 Залишок при діленні на b = 1

Оператори +, -і *обчислює додавання, віднімання, множення і , відповідно , як можна було б очікувати.

У звичайному розрахунку 9/4 = 2.25. Однак висновок є 2в програмі.

Це тому, що і змінні a і b є цілими числами. Отже, вихід також є цілим числом. Компілятор нехтує терміном після десяткової коми і показує відповідь 2замість 2.25.

Оператор за модулем %обчислює залишок. Коли a=9ділиться на b=4, залишок - 1. %Оператор може бути використаний тільки з цілими числами.

Припустимо a = 5.0, b = 2.0, c = 5і d = 2. Тоді в програмуванні на C,

 // Будь-який з операндів є числом із плаваючою комою a / b = 2,5 a / d = 2,5 c / b = 2,5 // Обидва операнди є цілими числами c / d = 2

C Оператори збільшення та зменшення

Програмування на С має два оператори збільшення ++та зменшення --для зміни значення операнда (константи або змінної) на 1.

Інкремент ++збільшує значення на 1, тоді як декремент --зменшує значення на 1. Ці два оператори є одинарними операторами, тобто вони працюють лише з одним операндом.

Приклад 2: Оператори збільшення та зменшення

 // 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; )

Вихідні дані

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

Тут оператори ++і --використовуються як префікси. Ці два оператори також можна використовувати як постфікси, такі як a++і a--. Відвідайте цю сторінку, щоб дізнатись більше про те, як працюють оператори збільшення та зменшення, коли вони використовуються як постфікс.

C Оператори присвоєння

Оператор присвоєння використовується для присвоєння значення змінній. Найбільш поширеним оператором присвоєння є=

Оператор Приклад Такий же, як
= 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

Приклад 3: Оператори присвоєння

 // 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; )

Вихідні дані

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

C Реляційні оператори

Реляційний оператор перевіряє зв'язок між двома операндами. Якщо відношення є істинним, воно повертає 1; якщо відношення хибне, воно повертає значення 0.

Реляційні оператори використовуються для прийняття рішень та циклів.

Оператор Значення оператора Приклад
== Дорівнює 5 == 3 оцінюється як 0
> Більше, ніж, величніше ніж, крутіший за 5> 3 оцінюється як 1
< Менше ніж 5 < 3 оцінюється як 0
! = Не дорівнює 5 != 3 оцінюється як 1
> = Більше або дорівнює 5>= 3 оцінюється як 1
<= Менше або дорівнює 5 <= 3 оцінюється як 0

Приклад 4: Реляційні оператори

 // 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; )

Вихідні дані

 5 == 5 це 1 5 == 10 це 0 5> 5 це 0 5> 10 це 0 5 <5 це 0 5 = 5 це 1 5> = 10 це 0 5 <= 5 це 1 5 <= 10 це 1 

C Логічні оператори

Вираз, що містить логічний оператор, повертає або 0, або 1, залежно від того, чи вираз має значення true чи false. Логічні оператори зазвичай використовуються для прийняття рішень при програмуванні на С.

Оператор Значення Приклад
&& Логічне І. Істинно, лише якщо всі операнди є істинними Якщо c = 5 і d = 2, тоді вираз ((c==5) && (d>5))дорівнює 0.
|| Логічне АБО. Істинно, лише якщо один з операндів є істинним Якщо c = 5 і d = 2, тоді вираз ((c==5) || (d>5))дорівнює 1.
! Логічне НЕ. Істинно, лише якщо операнд дорівнює 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 

Інші оператори, такі як тернарний оператор ?:, оператор посилання, оператор призначення посилань &та оператор *вибору членів, ->будуть розглянуті в наступних навчальних посібниках.

Цікаві статті...