Операция присваивания выполняется справа налево. Операция присваивания имеет две формы записи: полную и короткую. В одном операторе операция присваивания может встречаться несколько раз.
Полная форма записи: переменная = выражение;
Примеры присваивания полной формы:
int x; x = 25;
double y;
y = (x+2) / (3.5*x) – 5;
int x, y, z;
x = y = z = 4;
int x, y, z;
x = (y = 5) – (z = 3);
К сокращенной форме записи операции присваивания относятся +=, – =, *=, /= и %=, а также префиксные и постфиксные операции ++ и --. Все операции присваивания присваивают переменной результат вычисления выражения. Если тип левой части присваивания отличается от типа правой части, то тип правой части приводится к типу левой.
Примеры присваивания сокращенной формы:
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+4; означает a = a / (b+4);
Префиксные и постфиксные операции ++ и -- используют для увеличения (инкремент) и уменьшения (декремент) на единицу значения переменной.
Семантика указанных операций следующая:
++a увеличивает значение переменной а на единицу до использования этой переменной в выражении.
а++ увеличивает значение переменной а на единицу после использования этой переменной в выражении.
--a уменьшает значение переменной а на единицу до использования этой переменной в выражении.
a-- уменьшает значение переменной а на единицу после использования этой переменной в выражении.
Пример:
/* Арифметические операции и операции присваивания */
# include<stdio.h>
#include<conio.h>
void main( )
{
int x, y, z, v, w;
x=y=5; z=6;
clrscr();
printf("x=%d\t y=%d \t x+y=%d \t x*y=%d\n",x, y, x+y, x*y);
printf("x=%d\t z=%d \t x/z=%d \t x %% z= %d\n", x, z ,x/z ,x%z);
x=++y; z= --y; v=y++; w=y--;
printf("++y=%d \t --y=%d \t y++=%d \t y --= %d\n", x ,z, v, w);