Translate

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


У мові C ++ крім стандартного оператора присвоювання = існує ще кілька операторів присвоювання: + =, - =, * =, / =,% =, & =, | =, ^ =, << =, >> =. Запис x + = a еквівалентна запису x = x + a, тобто значення x збільшується на a. Аналогічно працюють і інші оператори:

x = a
привласнити x значення a
x + = a
збільшити значення x на a
x- = a
зменшити значення x на a
x * = a
помножити x на a
x / = a
поділити x на a (не забудьте про те, що буває поділ целочисленное і з плаваючою точкою!)
x% = a
замінити x на залишок від ділення x на a

Всі ці операції повертають посилання на змінну, що стоїть ліворуч від оператора присвоювання. При цьому якщо в арифметичній інструкції є кілька операторів присвоювання, то вони виконуються справа наліво. Оператори присвоювання мають більш низький пріоритет, ніж оператори +, -, *, /,%, тобто виконуються після цих операторів (якщо немає дужок).

приклад:

     int n = 2, m = 3;
     n + = m * = 2;
     cout << n << "" << m;

У другому рядку стоїть два оператора присвоювання. Спочатку виконається оператор m * = 2, оскільки він стоїть правіше. Цей оператор присвоїть m значення 6 і поверне це значення. Наступним виконається оператор n + = 6, де 6 - це значення, яке повернув попередній оператор присвоювання. Таким чином, змінної n буде присвоєно значення 8 і на екран будуть надруковані числа 8 і 6.

Оператори інкремента і декремента

Унарний оператор інкремента ++ збільшує значення змінної на 1. Існує дві форми оператора інкремента: префиксная форма ++ n і Постфіксний форма n ++. Постфіксний оператор інкремента повертає старе значення змінної, а префіксний оператор - нове, тобто збільшене на 1. Приклад:

     int a = 0, b = 0, c = 0, d = 0;
     a = ++ b;
     c = d ++;

Змінні a, b, d в цьому прикладі матимуть значення, рівне 1, а змінна c дорівнюватиме 0.

Унарний оператор декремента - зменшує значення змінної на 1 і також існує в префиксной і постфіксной формах.

Немає коментарів:

Дописати коментар