Операції присвоювання
В мові С++ знак = не означає "дорівнює". Він означає операцію присвоювання деякого значення змінній. Тобто зміст рядка вигляду "vr1=1024;" не виражається словами "vr1 дорівнює 1024". Замість цього потрібно казати так : "присвоїти змінній vr1 значення 1024".
Таблиця 3 - Операції присвоювання
Операція | Значення |
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;.
Приклад 2. Програма демонструє використання присвоювань.
#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.