Книга: Язык Си - руководство для начинающих

Старшинство операций

Старшинство операций

     В соответствии с принятым в языке Си порядком вычислений операции увеличения и уменьшения имеют очень высокий уровень старшинства; только круглые скобки обладают более высоким приоритетом. Поэтому выражение 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 определяется семантикой данной операции.

Оглавление книги


Генерация: 1.228. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз