Книга: Язык Си - руководство для начинающих
Старшинство операций
Старшинство операций
В соответствии с принятым в языке Си порядком вычислений операции увеличения и уменьшения имеют очень высокий уровень старшинства; только круглые скобки обладают более высоким приоритетом. Поэтому выражение x*y++ означает (x)*(y++), а не (x*y)++, что очень удобно, поскольку последнее выражение смысла не имеет. (Операции увеличения и уменьшения применяются к переменной, в то время как произведение х*у само по себе не является переменной в отличие от сомножителей).
Не путайте только старшинство этих операций с порядком вычислений. Предположим, у нас есть последовательность операторов:
y = 2;
n = 3;
nextnum = (у + n ++ )*6;
Какое значение примет переменная nextnum? Подставляя в выражение соответствующие значения, получаем
nextnum = (2 + 3)*6= 5*6 = 30
Только после того как выражение вычислено, значение переменной n увеличивается до 4. Старшинство операций говорит, что операция ++ имеет отношение только к n; кроме того, оно указывает, когда значение переменной n используется при вычислении выражения, но момент изменения значения n определяется семантикой данной операции.
- 4. Свойства унарных операций
- 3. Свойства бинарных операций
- 4. Варианты операций соединения
- При неудачном выполнении некоторых операций Windows динамик издает пронзительный звук. Можно ли заставить его замолчать?
- Контроль операций NTP
- Отношения и сигнатуры операций
- Отладка атомарных операций
- Порядок выполнения операций процессором
- Выполнение основных операций с файловой системой
- Операторы побитовых логических операций и сдвига
- 12.8. Команды выполнения математических операций
- Исключения, возникающие при выполнении операций над числами с плавающей точкой