Дело вовсе не в приоритете операций (тем более, что инкремент ++ имеет гораздо более высокий приоритет, чем операция присваивания с умножением). В данном случае инкремент постфиксный (стоит после операнда x), а это значит, что он будет выполняться лишь после того, как x будет использован (в операции присваивания с умножением). Лучше всего это наблюдать у разноимённых переменных: пусть x==7, y==7, нужно вычислить x*=y++. В этом случае y, равный 7, будет передан операции *= и лишь после этого увеличен на 1 операцией ++. |
Вопросы и ответы |
Поиск
Евгений | Репутация: 108 (Кандидат)
26 марта 2009 в 10:19
Владимир Борзенков | Репутация: 592 (Специалист)
25 марта 2009 в 21:47
Тема: Базы данных
Александр Бровков | Репутация: 99 (Без статуса)
24 марта 2009 в 16:29
Вадим Обухов | Репутация: 100 (Кандидат)
23 марта 2009 в 14:35
Александр Рыбин | Репутация: 106 (Кандидат)
23 марта 2009 в 11:45
Ульяна Телегина | Репутация: 101 (Кандидат)
21 марта 2009 в 23:59
Галина Кузнецова | Репутация: 99 (Без статуса)
20 марта 2009 в 17:04
Тема: Законодательство и право
Антон Егоров | Репутация: 100 (Кандидат)
19 марта 2009 в 21:26
Тема: Образование
Виссарион Мосешвили | Репутация: 101 (Кандидат)
19 марта 2009 в 20:27
Тема: Базы данных
Андрей Гайчуков | Репутация: 100 (Кандидат)
19 марта 2009 в 09:04
Ярослав Вовченко | Репутация: 101 (Кандидат)
18 марта 2009 в 21:58
Тема: Офисные технологии
Михаил Клюев | Репутация: 97 (Без статуса)
18 марта 2009 в 11:18
Тема: Образование
Андрей Гундт | Репутация: 99 (Без статуса)
16 марта 2009 в 16:02
Тема: Образование
Tengo Otxozoria | Репутация: 92 (Без статуса)
15 марта 2009 в 21:55
Наталья Долгих | Репутация: 152 (Кандидат)
14 марта 2009 в 16:27
Дмитрий Фокин | Репутация: 97 (Без статуса)
13 марта 2009 в 10:37
Владислав Лазарев | Репутация: 103 (Кандидат)
12 марта 2009 в 22:55
Тема: Образование
Салтанат Калиева | Репутация: 98 (Без статуса)
12 марта 2009 в 12:42
Салтанат Калиева | Репутация: 98 (Без статуса)
12 марта 2009 в 12:37
Михаил Гурьевский | Репутация: 101 (Кандидат)
11 марта 2009 в 13:56
постфиксный ++ работает после выполнения операции. эта запись переводится как x = (x * x)++.Это хорошо видно в ассемблере.
UMain.cpp.2029: int x = 7;00423138 C745F407000000 mov [ebp-$0c],$00000007UMain.cpp.2030: x *= x++;0042313F 8B45F4 mov eax,[ebp-$0c]00423142 0FAF45F4 imul eax,[ebp-$0c]00423146 8945F4 mov [ebp-$0c],eax00423149 FF45F4 inc dword ptr [ebp-$0c]