Операції подібні вбудованим функціям мови програмування. Вони застосовуються до виразів (операндів). Більшість операцій мають два операнди, один з яких розташовується перед знаком операції, а інший - після. Наприклад, два операнди має операція додавання А+В. Операції, які мають два операнди називаються бінарними. Існують і унарні операції, тобто такі, які мають лише один операнд. Наприклад, запис -А означає застосування до операнду А операції унарного мінуса. А три операнди має лише одна операція -?:. Це єдина тернарна операція мови Сі. У складних виразах послідовність виконання операцій визначається дужками, старшинством операцій, а при однаковому старшинстві - асоціативністю. За призначенням операції можна поділити на: • арифметичні операції; • операції присвоювання; • операції відношення; • логічні операції; • порозрядні операції; • операція обчислення розміру sizeof(); • умовна операція?; • операція слідування (кома).
1.4.1 Арифметичні операції До арифметичних операцій належать відомі всім бінарні операції додавання, віднімання, множення, ділення та знаходження залишку від ділення (таблиця 1.4.).
Таблиця 1.5.Бінарні арифметичні операції
Операція
Значення
Приклад
+
Додавання
a+b
-
Віднімання
a-b
*
Множення
a*b
/
Ділення
a/b
%
Залишок від ділення
a%6
Для наведених арифметичних операцій діють наступні правила: • бінарні операції додавання (+) та віднімання (-) можуть застосовуватися до цілих та дійних чисел, а також до покажчиків; • в операціях множення (*) та ділення (/) операнди можуть бути будь-яких арифметичних типів; • операція "залишок від ділення" застосовується лише до цілих операндів. • операції виконуються зліва направо, тобто спочатку обчислюється вираз лівого операнда, потім вираз, що стоїть справа від знака операції. Якщо операнди мають однаковий тип, то результат арифметичної операції має той же тип. Тому, коли операції ділення / застосовується до цілих або символьних змінних, залишок відкидається. Так, вираз 11/3 буде рівний 3, а вираз 1/2 буде рівним нулю. В мові Сі визначені також і унарні арифметичні операції (таблиця 1.5.).
Таблиця 1.5.Унарні арифметичні операції
Операція
Значення
Приклад
+
Унарний плюс (підтвердження знака)
+5
-
Унарний мінус (зміна знака)
-x
++
Операція інкременту (збільшення на 1)
i++, ++i
--
Операція декременту (зменшення на 1)
j--, --j
Операція інкременту (++) збільшує операнд на одиницю, а операція декременту (--) відповідно зменшує операнд на одиницю. Ці операції виконуються швидше, ніж звичайні операції додавання одиниці (a=a+1;) чи віднімання одиниці (a=a-1;). Існує дві форми запису операцій інкременту та декременту: префіксна та постфіксна. Якщо операція інкременту (декременту) розміщена перед змінною, то говорять про префіксну форму запису інкременту (декременту). Якщо операція інкременту (декременту) записана після змінної, то говорять про постфіксну форму запису. У префіксній формі змінна спочатку збільшується (зменшується) на одиницю, а потім її нове значення використовується у виразі. При постфіксній формі у виразі спочатку використовується поточне значення змінної, а потім відбувається збільшення (зменшення) цієї змінної на одиницю. Приклад, який демонструє роботу операції інкременту: #include<stdio.h> void main() { int x=3,y=3; printf("Значення префіксного виразу: %d\n ",++x); printf("Значення постфіксного виразу: %d\n ",y++); printf("Значення х після інкременту: %d\n ",x); printf("Значення y після декременту: %d\n ",y); }
1.4.2 Операції присвоювання В мові Сі знак = не означає "дорівнює". Він означає операцію присвоювання деякого значення змінній. Тобто зміст рядка вигляду "vr1=1024;" не виражається словами "vr1 дорівнює 1024". Замість цього потрібно казати так: "присвоїти змінній vr1 значення 1024". Перелік операцій присвоювання мови Сі ілюструє таблиця 1.6.
Таблиця 1.6.Операції присвоювання
Операція
Значення
a = b
присвоювання значення 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
a <<= b
зсув вліво з присвоюванням. Означає a = a << b
a >>= b
зсув вправо з присвоюванням. Означає a = a >> b
a &= b
порозрядне І з присвоюванням. Означає a = a & b
a |= b
порозрядне АБО з присвоюванням. Означає a = a | b
a ^= b
побітове додавання за МОД2 з присвоюванням, означає a = a ^ b
Операція присвоювання повертає як результат присвоєне значення. Завдяки цьому в мові Сі допускаються присвоювання виду: a=(b=c=1)+1; Розглянемо приклад, який демонструє використання таких присвоювань. #include<stdio.h> void main() { int data1, data2, data3; data1=data2=data3=68; printf("\ndata1==%d\ndata2==%d\ndata3==%d", data1,data2,data3); } Результат роботи програми виглядає так: data1==68 data2==68 data3==68 data1=data2=data3=68; Присвоювання відбувається справа наліво: спочатку змінна data3 отримує значення 68, потім змінна datа2 і нарешті data1.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление