Предупреждение. Если вы присваиваете переменной значение в любом выражении (включая вызов функции), то не используйте эту переменную снова в том же выражении. Например, если в предыдущем примере необходим порядок обработки слева направо, сделайте так:
х=5;
v = х + (х + 1);
++х;
4.14. Арифметические преобразования в выражениях
Прежде всего каждый операнд типа char или short преобразуется в значение типа int и операнды типа unsigned char или unsigned short преобразуются в значение типа unsigned int1. Затем если один из операндов имеет тип double, то другой преобразуется в значение типа double и результат будет иметь тип double.
' Кроме того, операнды типа float до начала операции преобразуются в значение типа double [Дб]. - Прим. перев.
Иначе если один из операндов имеет тип unsigned long, то другой преобразуется в значение типа unsigned long и таким же будет тип результата.
Иначе если один из операндов имеет тип long, то другой преобразуется в значение типа long и таким же будет тип результата. Иначе если один из операндов имеет тип long, а другой - тип unsigned int, то оба операнда преобразуются в значение типа unsigned long и результат будет иметь тип unsigned long. Иначе если один из операндов имеет тип unsigned, то другой преобразуется в значение типа unsigned и результат будет иметь тип unsigned.
Иначе оба операнда должны быть типа int и таким же будет тип результата.
5. ОПЕРАТОРЫ
' 5.1. Формат и вложенность
Формат. Один оператор может занимать одну или более строк. Два или большее количество операторов могут быть расположены на одной строке.
Вложенность. Операторы, управляющие порядком выполнения (if, if-else, switch, while, do-while и for), могут быть вложены друг в друга.
5.2. Метка оператора
Метка может стоять перед любым оператором, чтобы на этот оператор можно было перейти с помощью оператора goto. Метка состоит из идентификатора, за которым стоит двоеточие (:). Областью определения метки является данная функция. Пр им ер
АВС2: х=3;
5.3. Составной оператор