| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Не понимаю почему так? |
| Автор: Luka 20.9.2004, 15:55 | ||||||
| Вот три программки: 1
2
3
1 и 2 работают, а 3 нет. Почему, так? |
| Автор: cardinal 20.9.2004, 16:39 | ||
Потому что не хватает скобок. Компилятору не нравится выражение first+=10, а лучше сказать он не знает что с ним делать
Я думаю результат тебя удивит. |
| Автор: lynx_916 20.9.2004, 17:20 |
| да, у меня такой же рецепт, но тока вот зачем первые 2 примера? |
| Автор: cardinal 20.9.2004, 18:00 |
| Для того, чтобы написать, что первые два работают и спросить почему не работает третий. |
| Автор: Luka 20.9.2004, 18:47 | ||||
cardinal
19 19 9 А что, так и должно быть? lynx_916
ну с начала я написал 3 , не заработала, затем решил разделить действия построчно, получилась 1 программа - заработала. Стал разбираться почему не работает 3. Подумал было, что нельзя производить действия такого типа в cout (т.е.: cout << a++). Нашел пример 2 программы, версия отпала. А вообще, мне казалось 3=1 |
| Автор: Nastya 20.9.2004, 20:09 |
| 1. x+=10 - в отличае x++ - значения не возращает, void, он. Тольком объеснить не могу 2. В третьем примере довольно часто встречается глюк дебаговой версии откомпилируй в релизе результат может быть другим |
| Автор: cardinal 20.9.2004, 20:18 | ||||
Значения высчитываются справо налево, а потом выводятся слево направо.
На самом деле все произошло немного подругому. Я думаю это может еще и от компилятора зависить. Вобщем вывод тут один: писать так не нужно! Luka, лучши пиши как в первом варианте. |