Форум программистов, компьютерный форум CyberForum.ru

два ++ - C++

Восстановить пароль Регистрация
 
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
16.08.2011, 22:49     два ++ #1
Что означает "++" что ето за операция в С++Builder очень надо узнать
Напишите кто нибудь.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 22:49     два ++
Посмотрите здесь:

Даден массив. Все четные елементы массива уменьшыть в два раза, а нечетные увеличить в два раза. C++
C++ Найти два таких два таких элемента, разность модулей которых имеет максимальное значение
подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) C++
C++ Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д.
Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.08.2011, 23:03     два ++ #2
увеличивает на еденичку значение переменной
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
16.08.2011, 23:06  [ТС]     два ++ #3
Спосибо!!!
Kastaneda
17.08.2011, 08:47
  #4

Не по теме:

Пора писать FAQ "Как пользоваться гуглом"

diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.08.2011, 09:03     два ++ #5
Инкремент называется.
По этому страшному слову можно погуглить, а вот к ++ гугл равнодушен =)
Сыроежка
Заблокирован
17.08.2011, 15:25     два ++ #6
Цитата Сообщение от Джек Посмотреть сообщение
Что означает "++" что ето за операция в С++Builder очень надо узнать
Напишите кто нибудь.
Это - операция инкримента, которая может разделяться на пост-инкримент и пре-инкримент.

Например,

C++
1
2
3
4
5
6
7
8
9
int x;
int y;
 
x = 0;
y = ++x;
 
 
x = 0;
y = x++;

В первом случае сначала x увеличится на 1 и станет равным 1, и затем это значение ч будет присвоено переменной y.
Во-втором случае сначала y получает значение x, то есть значение 0, а затем x увеличивается на 1.
toxa92
 Аватар для toxa92
167 / 94 / 2
Регистрация: 16.04.2010
Сообщений: 464
17.08.2011, 19:42     два ++ #7
Очень советую поподробней изучить результаты таких вот действий:

i=0;
i=++i + ++i; //или же i=i++ + i++

Весьма неочевидные результаты получаются иногда
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.08.2011, 19:53     два ++ #8
Цитата Сообщение от toxa92 Посмотреть сообщение
Весьма неочевидные результаты получаются иногда
Это не иногда, это по стандарту the behavior is unspecified.
toxa92
 Аватар для toxa92
167 / 94 / 2
Регистрация: 16.04.2010
Сообщений: 464
17.08.2011, 19:55     два ++ #9
Цитата Сообщение от asics Посмотреть сообщение
Это не иногда, это по стандарту the behavior is unspecified.
Операция выполняется, но результат зависит исключительно от компилятора, потому и посоветовал
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
17.08.2011, 20:00     два ++ #10
Цитата Сообщение от toxa92 Посмотреть сообщение
Операция выполняется, но результат зависит исключительно от компилятора, потому и посоветовал
Так зачем их изучать, если результат всегда разный? И результат этот нигде не определен, то есть после обновления версии компилятора, я уже не говорю о замене компилятора, он может быть совершенно другой.

Не по теме:

Цитата Сообщение от Сыроежка Посмотреть сообщение
Это - операция инкримента
инкремента

toxa92
 Аватар для toxa92
167 / 94 / 2
Регистрация: 16.04.2010
Сообщений: 464
17.08.2011, 20:01     два ++ #11
Цитата Сообщение от fasked Посмотреть сообщение
Так зачем их изучать, если результат всегда разный? И результат этот нигде не определен, то есть после обновления версии компилятора, я уже не говорю о замене компилятора, он может быть совершенно другой.

Не по теме:


инкремента

Чтобы не использовать по-незнанию - очевидно же вроде)
Сыроежка
Заблокирован
17.08.2011, 20:39     два ++ #12
Цитата Сообщение от asics Посмотреть сообщение
Это не иногда, это по стандарту the behavior is unspecified.
Это на самом деле не unspecified, а undefined. Между этими понятиями большая разница. Когда unspecified это означает, что стандарт дальше не детализирует и оставляет на усмотрение разработчиков компилятора. Разработчики компилятора в свою очередь обязаны документировать выбранное ими поведение конструкции.

А undefined, как в случае выражения = ++ + ++, означает некорректное использование конструкций языка, в результате которого ничего нельзя сказать, что получится.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.08.2011, 20:51     два ++ #13
Цитата Сообщение от Сыроежка Посмотреть сообщение
Это на самом деле не unspecified, а undefined
Вот...
Миниатюры
два ++   два ++  
Сыроежка
Заблокирован
17.08.2011, 21:45     два ++ #14
Значит вы правы. Мне казалось, что поведение ы таких случаях undefined.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2011, 22:18     два ++
Еще ссылки по теме:

Дан целочисленный двумерный массив. Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы C++
Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы C++
Последовательность целых чисел. Найти два минимальных / два максимальных элемента C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
17.08.2011, 22:18     два ++ #15
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Сыроежка Посмотреть сообщение
Когда unspecified это означает, что стандарт дальше не детализирует и оставляет на усмотрение разработчиков компилятора. Разработчики компилятора в свою очередь обязаны документировать выбранное ими поведение конструкции.
Ладно, чёрт с тобой, выхожу на тропу войны
1.3.13 unspecified behavior
behavior, for a well-formed program construct and correct data, that depends on the implementation. The implementation is not required to document which behavior occurs. [Note: usually, the range of possible behaviors is delineated by this International Standard. ]
В C99, кстати, про документирование здесь и вовсе промолчали.
А по мне, так что undefined, что unspecified — один хрен, так использовать инкремент с присваиванием в ту же переменную нельзя. Единственно что можно, да и то с большой осторожностью, так это implementation-defined который как раз и должен документироваться.
Хотя, справедливости ради, вполне можно придумать ситуации, в которых unspecified behavior можно использовать без опаски, чего не скажешь про undefined.
Yandex
Объявления
17.08.2011, 22:18     два ++
Ответ Создать тему
Опции темы

Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru