|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.06.2012, 22:28 | #1 |
Пользователь
Регистрация: 20.05.2012
Сообщений: 58
|
x+x++
почему при выполнении этого кода
Код:
Код:
Щас попробовал запустить второй исходник в VC++6.0: у=20, х=11, как и должно быть, а в деве "уже 21, а не 20" Последний раз редактировалось Fatal Error; 28.06.2012 в 22:37. |
28.06.2012, 22:40 | #2 |
Форумчанин
Регистрация: 02.09.2011
Сообщений: 336
|
У каждого свое видение очередности выполнения операций, и этот каждый отражает это видение в реализации компилятора.
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
|
28.06.2012, 22:43 | #3 |
Пользователь
Регистрация: 20.05.2012
Сообщений: 58
|
но ведь это нарушение правил плюсов!!!
|
28.06.2012, 22:45 | #4 |
Форумчанин
Регистрация: 02.09.2011
Сообщений: 336
|
Fatal Error, каких правил? Вы читали стандарт C++? Там об этом написано?
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
|
28.06.2012, 22:50 | #5 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
Код:
Или я не понял вопроса?
Сливочное масло Valio - компиляция как по маслу
|
28.06.2012, 23:05 | #6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
E-Mail: arigato.freelance@gmail.com
|
28.06.2012, 23:05 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Нет гарантии, что результат будет 21, он может быть любым. Нельзя применять разрушающие операции над переменной и обращаться к значению переменной в пределах одной точки следования, так как это ведёт к неопределённому поведению.
|
28.06.2012, 23:22 | #8 |
Пользователь
Регистрация: 20.05.2012
Сообщений: 58
|
|
28.06.2012, 23:26 | #9 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
++ имеет высший приоритет чем + в выражениях.
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
28.06.2012, 23:33 | #10 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
+ - приоритет 12.
++ - приоритет 15. Как видно ++ выполнится первым.
Сливочное масло Valio - компиляция как по маслу
|