Выражения состоят из операндов, знаков операций и скобок и используются для вычисления некоторого значения определенного типа.
Каждый операнд является, в свою очередь, выражением или одним из его частных случаев — константой или переменной.
Арифметические выражения на С++ должны быть записаны в одну строку. Круглые скобки используются в С++ в основном точно так же, как и в алгебраическом выражении.
Для гарантированной последовательности операций, операции выполняются в соответствии с приоритетами —правилами старшинства операций, которые, в общем совпадают с теми, которые используются в алгебре.
1. Операции в выражениях, заключенных внутри круглых скобок, выполняются в первую очередь.
2. Следующими выполняются операции умножения, деления и вычисления остатка. Если выражение содержит несколько операций умножения, деления и вычисления остатка. То операции выполняются слева направо. Например, a*b*c означает (a*b)*c.
3. Операции сложения и вычитания выполняются последними. Если выражение содержит несколько операций сложения и вычитания, то операции выполняются слева направо. Операции сложения и вычитания имеют одинаковый приоритет.
Когда говорят о выполнении операций слева направо (или справа налево. Например, операция присваивания, a=b=c означает a= (b=c) ), то имеют ввиду ассоциативность операций.
Для того, чтобы сделать выражение яснее, в нем можно расставлять дополнительные избыточные круглые скобки.
Результат вычисления выражения характеризуется значением и типом. Например, если a и b — переменные целого типа и описаны так:
int a=2, b=5;
то выражение a+b имеет значение 7 и тип int, а выражение a=b имеет значение, равное помещенному в переменную a (в данном случае 5) и тип, совпадающий с типом этой переменной.
Если переменной присваивается значение, которое не входит в диапазон значений для данного типа переменной, возникает ошибка переполнения. При выполнении арифметических операций необходимо помнить о возможности возникновения ошибок переполнения.