Основано на:

Операторы

Оператор - это атомарная единица ЯП производящая вычисление.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/51f9e5ca-2ed5-4a45-bc6d-1e540e132593/Expressions_-_cppreference_com.png

Дополнительные операторы:

Операнды - это "аргумент" оператора. Операндом может быть любое выражение и литерал.

Порядок выполнения операторов

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0f7899ed-a0bb-4dfc-b5ae-ae6fa7583dd4/Banners_and_Alerts__C_Operator_Precedence_-_cppreference_com.png

Выражение (Expression)

Выражение это последовательность операторов и их операндов, которые совершают некоторое вычисление. Выполнение выражения может произвести некоторый результат (например выполнение выражения 2+2 вернет значение 4) и может привести к side-эффекту. Так например вызов printf("%d", 4) напечатает в стандартном выводе символ 4.

Инструкция (Statement)

Инструкция - это единица императивного языка программирования, которая выражает некоторое действие, которое должно быть выполнено. Инструкции выполняются последовательно друг за другом. Например, тело функции это последовательность инструкций:

int main(void)
{ // start of a compound statement
    int n = 1; // declaration (not a statement)
    n = n+1; // expression statement
    printf("n = %d\\n", n); // expression statement
    return 0; // return statement
} // end of compound statement, end of function body

Различают 5 типов инструкций:

  1. compound statements - последовательность инструкций и объявлений заключенных в фигурные скобки. Блок позволяет сгруппировать последовательность инструкций и объявлений, чтобы этот блок было возможно использовать везде, где подразумевается использовать одну инструкцию. Например, в инструкции if или while.
  2. expression statements - Выражение, после которого стоит точка с запятой считается инструкцией.