powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / i=5; i= ++i + ++i; 13 или 14 и почему???
10 сообщений из 10, страница 1 из 1
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585341
Спор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
есть такой вопрос,

i = 5;
i = ++i + ++i;

В итоге и в JDeveloper и в C# получается i = 13.

А почему, как отрабатывает подсчет этого выражения?

З.Ы. Я знаю что выражениях использовать ++ не рекомендуется))
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585434
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
++ это нормальный оператор, но не следует их целую кучу писать в одном выражении, от этого код становиться не очень понятный.

Если интересуют Java Puzzlers то можно тут посмотреть:

JavaPolis2004
JavaPolis2005

PS: на JavaPolis еще много интересного.
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585441
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати это выражение совсем простое (на вид)

++i - префиксный инкремент (выполняется до)
i++ - постфиксный инкремент (выполняется после)
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585600
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
i= 5 ;
i( 13 )= ++i( 7 ) + ++i( 6 );
ну и...
зы
учите матчасть
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585647
sommer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что аргумент передается по значению
в С++ по ссылке, поэтому в C++ должно быть 14, хотя зависит от компилятора, на некоторых компиляторах 13 получается как в джава.

тема начата на башорге месяц назад примерно, поищите, полно подробных описаний в нете и в жж по этому вопросу
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585715
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спор wrote:

> i = 5;
> i = ++i + ++i;
>
> В итоге и в JDeveloper и в C# получается i = 13.
>
> А почему, как отрабатывает подсчет этого выражения?

А почему нет?
Загрузили ++i в стек (6), загрузили ++i в стек (7), сложили.

> З.Ы. Я знаю что выражениях использовать ++ не рекомендуется))

Тогда реши такую задачу:
i += ++i + ++i;

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585723
chp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sommerпотому что аргумент передается по значению
в С++ по ссылке, поэтому в C++ должно быть 14, хотя зависит от компилятора , на некоторых компиляторах 13 получается как в джава.

Ответ конечно достойный, но неправильный. Всем заинтресованным относительно C++ идти на rsdn.ru, курить форум по C/C++, там эта тема и подобные примеры в разнообразных вариациях неоднократно обсуждались, это неопределенное поведение. В качестве параметров поиска можно указать "точки следования" . Например:

здесь
и
здесь
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585805
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это же баян древний.
этот пассаж развеселил:
[quote ...]
В итоге и в JDeveloper и в C# получается i = 13.
[/quote]
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585869
sommer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chp sommerпотому что аргумент передается по значению
в С++ по ссылке, поэтому в C++ должно быть 14, хотя зависит от компилятора , на некоторых компиляторах 13 получается как в джава.

Ответ конечно достойный, но неправильный. Всем заинтресованным относительно C++ идти на rsdn.ru, курить форум по C/C++, там эта тема и подобные примеры в разнообразных вариациях неоднократно обсуждались, это неопределенное поведение. В качестве параметров поиска можно указать "точки следования" . Например:

здесь
и
здесь

прочитал, но так и не понял почему мой коммент не правильный.
или часть поста, а не весь мой пост? не понял где не правильно
...
Рейтинг: 0 / 0
i=5; i= ++i + ++i; 13 или 14 и почему???
    #34585924
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sommerпрочитал, но так и не понял почему мой коммент не правильный.
или часть поста, а не весь мой пост? не понял где не правильно
Потому что поведение зависит не от компилятора, а от пятен на солнце.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / i=5; i= ++i + ++i; 13 или 14 и почему???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]