Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.45 Mб
Скачать

2.4 Операції присвоєння

Операція простого присвоєння використовується для заміни значення лівого операнда, значенням правого операнда. При присвоюванні відбувається перетворення типу правого операнда до типу лівого операнда.

Приклад 2.7. Операція простого присвоєння.

int t;

char f = 'a';

long z = 10;

t = f + z; /* t = 107 */

Значення змінної f перетворюється до типу long, обчислюється вираз f+z, результат перетворюється до типу int і потім присвоюється змінній t.

Крім простого присвоєння, є ціла група операцій присвоєння, що поєднують просте присвоєння з однією з бінарних операцій. Такі операції називаються складеними операціями присвоєння і мають вигляд:

(операнд-1) (бінарна операція) = (операнд-2) .

Складене присвоєння по результату еквівалентно наступному простому присвоєнню:

(операнд-1) = (операнд-1) (бінарна операція) (операнд-2).

Кожна операція складеного присвоєння виконує перетворення, що здійснюються відповідною бінарною операцією.

Відомості про складені операції присвоювання представлені у табл.

Таблиця 2.3 – Складені операції присвоювання

Лексема

Пояснення складеної операції присвоєння

*=

помножити та присвоїти

/=

поділити та присвоїти

%=

залишок від ділення та присвоїти

+=

додати та присвоїти

-=

відняти та присвоїти

&=

порозрядне логічне «І» та присвоїти

|=

порозрядне логічне «АБО» та присвоїти

>>=

зсув вправо та присвоїти

<<=

зсув вліво та присвоїти

^=

порозрядне логічне «виключне АБО» та присвоїти

Приклад 2.8. Види арифметичних операцій.

int a = 1, b = 3, c = 6, d = 16, e = 9;

a + = 2; /*еквівалентно виразу a = a + 2; */

b - = c; /* еквівалентно виразу b = b - c;*/

c / = 3; /*еквівалентно виразу c = c / 3; */

d >> = 4; /*еквівалентно виразу d = d >> 4; */

e % = a; /* еквівалентно виразу e = e % a;*/

2.5 Операції інкремента і декремента

Операції інкремента (++) і декремента (--) є унарними операціями присвоєння. Ці операції відповідно збільшують чи зменшують значення операнда на одиницю. Операнд може бути цілого чи дійсного типу чи бути покажчиком.

Операції інкремента і декремента мають дві форми запису: префіксна, коли операнд розташовується після знака операції (наприклад, ++а, --а); постфіксна, коли операнд розташовується перед знаком операції (наприклад, а ++, а --).

У випадку префіксної форми запису зміна операнда відбувається до його використання у виразі і результатом операції є збільшене чи зменшене значення операнда.

У випадку постфіксної форми запису операнд спочатку використовується для обчислення виразу, а потім відбувається зміна операнда.

Приклад 2.9. Операції інкремента (постфіксна).

int f = 1, d;

d = (f++)*5;

Приклад 2.10. Операції інкремента (префіксна).

int f = 1, d;

d = (++ f) * 5;

У прикладі 2.9 спочатку відбувається множення f * 5, а потім збільшення f на одиницю. У результаті вийде d = 5, f = 2.

У прикладі 2.10 спочатку значення f збільшується на одиницю, а потім використовується в операції множення. У результаті одержимо d = 10, f = 2.

У випадку, якщо операції збільшення чи зменшення використовуються не у виразі, а як самостійні оператори, префіксна і постфіксна форми запису стають еквівалентними.

F++; /* еквівалентно */ ++f;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]