| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Интересные и занимательные задачи по программированию > Вот головоломка )) |
| Автор: valentos 27.1.2008, 00:11 |
| i = 5; i = ++i + ++i; Чему равно i? |
| Автор: source777 27.1.2008, 00:31 |
| По стандарту = 13, а вообще может зависить от компилятора... |
| Автор: Akina 27.1.2008, 00:57 |
т.е. по стандарту выражение не может интерпретироваться как i = ++i++ + i; ? приоритет пред-инкремента? |
| Автор: Kangaroo 27.1.2008, 01:11 |
так там же пробелы.. полюбому будет пред-инкремент |
| Автор: Retro 27.1.2008, 11:42 |
| Помоему эта задача уже была во всех разделах. Даже в C++, .NET и флейме. Все действительно зависит от компилятора. |
| Автор: inisider 27.1.2008, 14:51 |
| Хмммм... а ответ вообще будет 14 !!!!! |
| Автор: Kangaroo 27.1.2008, 19:50 |
А 14 там с какого боку? Это на каком языке? |
| Автор: Samotnik 27.1.2008, 20:24 |
| IntelliJ IDEA 7.0.1 + jdk1.6.0_03 Выдает 13 |
| Автор: inisider 28.1.2008, 18:10 |
| напишите на С и будет 14 |
| Автор: source777 28.1.2008, 19:25 |
| не все компиляторы С достаточно хорошо знают С |
| Автор: inisider 29.1.2008, 09:38 |
| |
| Автор: Shaggie 29.1.2008, 10:21 |
| UB |
| Автор: Mayk 29.1.2008, 10:26 |
| Shaggie прав. В сишках по стандарту UB. И вообще так писать не следует даже если http://c2.com/cgi/wiki?JustAnotherProgrammingLanguage Specification ver 12.054 sp3 говорит что ответ = 19. |
| Автор: Aloha 29.1.2008, 17:34 |
| http://bash.org.ru/quote/212679 |
| Автор: Kangaroo 29.1.2008, 17:45 |
| Aloha, А что такое "по стандарту UB"? |
| Автор: Shaggie 30.1.2008, 10:29 |
| Википедия про UB http://en.wikipedia.org/wiki/Undefined_behavior. http://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5, укороченный вариант. |
| Автор: Kangaroo 30.1.2008, 12:12 |
Спасибо, теперь понял. |
| Автор: BinWorm 30.1.2008, 21:44 |
| хмм, gcc и вижуалка дают 14, intel cpp 13. По идее может быть и 12, но я не встречал =) |
| Автор: silversmith 23.3.2008, 02:24 |
| Хе-хе... эта головоломка мусолилась уже сто раз в инете ))). Пресловутые Undefined behavior и sequence points )))). Еще одна статейка в тему: http://en.wikipedia.org/wiki/Sequence_point |