Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что получится в результате i++ + ++i + ++i, Вопрос на собеседовании 
:(
    Опции темы
sQu1rr
Дата 12.3.2013, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london




Цитата(bsa @  12.3.2013,  16:36 Найти цитируемый пост)
странно. А у меня gcc при любых опциях компиляции выдает 10... Почему бы это?    

Намек понял, развернутый пример и правла нагляднее. Не знаю, почему подумал, что это разные сиквенс пойнты.
PM MAIL Skype GTalk   Вверх
azesmcar
Дата 12.3.2013, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения




bsa, он еще и предупреждает плюс ко всему
Цитата

warning: operation on 'i' may be undefined [-Wsequence-point]

http://liveworkspace.org/code/2zwVZO$0


Это сообщение отредактировал(а) azesmcar - 12.3.2013, 16:39
PM   Вверх
baldina
Дата 12.3.2013, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва




Цитата(sQu1rr @  12.3.2013,  16:32 Найти цитируемый пост)
Да, 01

Цитата(bsa @  12.3.2013,  16:36 Найти цитируемый пост)
А у меня gcc при любых опциях компиляции выдает 10

мой лучше оптимизирует, он дает 00
PM MAIL   Вверх
NoviceF
Дата 12.3.2013, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону




Ещё статья от Алёны на тему, там вроде бы довольно наглядно всё расписывается.

http://alenacpp.blogspot.ru/2005/11/sequence-points.html
PM MAIL   Вверх
sergioK1
Дата 13.3.2013, 08:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011




Цитата(NoviceF @ 12.3.2013,  18:14)
Ещё статья от Алёны на тему, там вроде бы довольно наглядно всё расписывается.

http://alenacpp.blogspot.ru/2005/11/sequence-points.html

Меня такому еще на первом курсе научили, когда никаких блогеров и в помине не бы,

Но если у меня возникают сомнения - имеет ли в данном месте присвоение одной переменной несколько раз между двумя точками следования, я просто переписываю этот кусок. В итоге к тому же получается более читаемый код, а такой код легче поддерживать и развивать.

В нормальной фирме от кандидата ждут имеено такой ответ ,

PM MAIL   Вверх
Akella
Дата 13.3.2013, 10:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




Цитата(ZZZkoderZZZ @  11.3.2013,  13:05 Найти цитируемый пост)
i=i++ + ++i + ++i;


хорошо, что в delphi так нельзя  smile 
PM MAIL   Вверх
Zloxa
Дата 13.3.2013, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008




Цитата(Akella @ 13.3.2013,  11:15)
Цитата(ZZZkoderZZZ @  11.3.2013,  13:05 Найти цитируемый пост)
i=i++ + ++i + ++i;


хорошо, что в delphi так нельзя  smile

Кстати тоже подумал про "провокацию гoвнокодинга"(с) и даже изучил этот вопрос применительно к Java. Хорошая новость - у жавы последовательность вычислеия выражения специфиед. Плохая новость, нельзя использовать как контр аргумент делфисраче с LSD.

Это сообщение отредактировал(а) Zloxa - 13.3.2013, 10:25


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akella
  Дата 13.3.2013, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




блин, оказывается, можно с помощью DoInc

Код
procedure TForm9.Button1Click(Sender: TObject);
  function DoInc(var AI : integer): integer; //inline;
  begin
    AI := AI + 1;
    Result := AI;
  end;
var i : integer;
begin
  i := 5;
  i := DoInc(i) + DoInc(i);
  ShowMessage(IntToStr(i)); //Тоже 13. 
end;


Добавлено через 10 минут и 37 секунд
и результат будет зависеть от того, будет ли присутствовать var

function DoInc(var AI : integer): integer; //будет 13
function DoInc(AI : integer): integer; //будет 12
PM MAIL   Вверх
Zloxa
Дата 13.3.2013, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008




Akella, а можешь найти в спецификации языка expression evaluation order? Я только для short-cirquit evaluation boolean expression вычитал, что они идут слева направо. 

Думаю и для обычных выражений порядок выполнения предопределен, иначе, скажем, конкатенация давала бы недетерменированный результат. Но где это описано - не нашел.

Добавлено через 4 минуты и 35 секунд
Цитата(Akella @  13.3.2013,  12:03 Найти цитируемый пост)
и результат будет зависеть от того, будет ли присутствовать var

однако ж странно было бы иначе  smile

Добавлено через 8 минут и 55 секунд
Скажите пожалуйста, кто знает, а все темы участника ZZZkoderZZZ во флейм переесли действительно для того, чтобы их к делфисрачу свести?  smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akella
Дата 13.3.2013, 11:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




ZZZkoderZZZ, сколько у тебя учетных записей на Винграде и какая из них основная?
PM MAIL   Вверх
krundetz
Дата 15.3.2013, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)




Цитата(bsa @  11.3.2013,  21:08 Найти цитируемый пост)
Это вопрос на знание ЭЛЕМЕНТАРНЫХ ПОДВОДНЫХ КАМНЕЙ С++. Если ты не знаешь результат этой операции (рафинированной, кстати), то как ты определишь проблему в более сложном случае?
Этот вопрос используется для получения представления об опыте и интересах потенциального сотрудника. Если сотрудник не интересуется языком, не читает книжки, не обсуждает на форумах проблемы, то это говорит о том, что он не ту профессию выбрал.

 smile 

Это сообщение отредактировал(а) krundetz - 15.3.2013, 16:00


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.