Выполнение программы состоит из последовательности инструкций. Инструкции выполняются одна за другой.
Порядок вычислений внутри инструкций не определён.
/* unspecified behavior */ int i = 10; i = ( i += 5) + ( i * 4);
Блоки имеют вложенную область видимости:
int k = 10; { int k = 5 * i; // не видна за пределами блока i = ( k += 5) + 5; } k = k + 1;