"Андрей Богатырев. Руководство полного идиота по программированию (на языке Си)" - читать интересную книгу автора

Последняя операция x = y; НЕ делает имена x и y синонимами.
Такой вещи, как "перевешивание табличек с именами с ящика на ящик"
не происходит. Вместо этого, два ящика с именами x и y содержат
одинаковые значения, то есть две копии одного и того же числа.

----- -----
/ x / / y /
--------------- ---------------
| 3 *<--|--------<----|-- 3 |
--------------- 1) ---------------
2), 3) 4)

1) Из ящика y берется КОПИЯ числа 3 (безымянное значение).
2) Старое содержимое ящика x уничтожается.
3) Число 3 кладется в ящик x.
4) В исходном ящике y попрежнему осталось 3.

Значение целой переменной можно вывести на экран оператором печати:

printf("%d\n", x);

Пока будем рассматривать его как "магический".

Над целыми числами можно производить такие арифметические операции:

x + y сложение
x - y вычитание
x * y умножение
x / y деление нацело (то есть с остатком; результат - целое)
x % y вычислить остаток от деления нацело

5 / 2 даст 2
5 % 2 даст 1

В операторах присваивания используются такие сокращения:

ДЛИННАЯ ЗАПИСЬ СМЫСЛ СОКРАЩАЕТСЯ ДО
x = x + 1; "увеличить на 1" x++; (или ++x; )
x = x - 1; "уменьшить на 1" x--; (или --x; )
x = x + y; "прибавить y" x += y;
x = x * y; "умножить на y" x *= y;
x = x / y; "поделить на y" x /= y;

В том числе x++; можно записать как x += 1;

* СТРУКТУРЫ УПРАВЛЕНИЯ *

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