Square
Думай как компилятор
Денис
Кто-нибудь может объяснить почему этот код выведет 3? int a; a=0?a=1:a=2?a=3:a=4?a=5:a=6; cout<<a;
Все просто. 0 это false, !0 это true. В первом выражении 0, значит идем по условию a=2?a=3:a=... и т.д. В этом выражении 2 это true, значит a=3.
Alexey
Кто-нибудь может объяснить почему этот код выведет 3? int a; a=0?a=1:a=2?a=3:a=4?a=5:a=6; cout<<a;
а если в ячейке памяти, которую компилятор выделит под переменную a, уже был какой-то мусор отличный от 0?
🦥Alex Fails
Вообще не рекомендую писать, как на Перле
🦥Alex Fails
Тернарный оператор надо сначала раскурить нормально, потом уже такая хуйня просто парсится
🦥Alex Fails
Но писать так не надо
Anonymous
Anonymous
С++ лучше наркотиков, когда начинаешь что то понимать после долгого не понимания - этот момент экстаза не сравниться ни с чем...
Suren
Любой ЯП)
Egor
Тернарный оператор надо сначала раскурить нормально, потом уже такая хуйня просто парсится
для читаемости всё же лучше if() {} else {} и только в отдельных случаях ?:
Egor
это он и есть
Egor
вопрос же из серии, что будет если: i+++++i
Egor
хотя в моём вопросе есть большой подвох
🦥Alex Fails
Обожаю эту хрень)
Egor
а вообще самый частый вопрос, который задают - расскажите про виртуальные дестроукторы всё что вы знаете
Egor
этот на каждом собеседовании встречается
🦥Alex Fails
а вообще самый частый вопрос, который задают - расскажите про виртуальные дестроукторы всё что вы знаете
да. Но у меня его не было, т.к. я быстрее рассказал, когда про наследование пиздели с собеседующим)
🦥Alex Fails
Вообще ты хорошую идеб подкинкл)
Anonymous
senior?
🦥Alex Fails
Мид
Anonymous
ужас, первый раз такое вижу))
🦥Alex Fails
Ммм... оператор "длинная стрелка"😍👍
Egor
не, ТАКОЕ я ещё не встречал )))
🦥Alex Fails
При чем это ОЧЕНЬ длинная стрелка
🦥Alex Fails
Я делал a-->b
🦥Alex Fails
И --->b
🦥Alex Fails
Самый лучший вопрос будет этот:
Egor
была статья недавно по библиотеке, где перегружались операторы для получания оператора "длинная стрелка", наверняка после этой публикации )))
🦥Alex Fails
чем отличаются
🦥Alex Fails
*start=*end
🦥Alex Fails
от
🦥Alex Fails
start=*end;
🦥Alex Fails
Да
Leonid
Я делал a-->b
Подкидывал коллегам. Говорю, а вы знали что в С11 есть оператор "стремится"? мол while (a —> 0) пока а стремится к нулю
Egor
https://habrahabr.ru/post/184436/
🦥Alex Fails
@Aurealian , вот ответ на твой вопрос)
Egor
kv--->set("users", AnRWLockAutoCreate<Counter>()); kv->get("sessions")--->inc(); и другая наркомания
🦥Alex Fails
Еще ответ "звездочкой" засчитывался)))
🦥Alex Fails
Та бля, тут все просто
🦥Alex Fails
Ему можно на кубиках показать😂
Anonymous
вопрос же из серии, что будет если: i+++++i
/home/pam3es/projects/newproj11/main.cpp:8:12: error: lvalue required as increment operand
🦥Alex Fails
https://habrahabr.ru/post/184436/
Годная статья👍
Anonymous
i++ + ++i
Anonymous
4 будет
Anonymous
если i = 1;
Egor
4 будет
не факт
Anonymous
если i = 0; тогда получится 2
Egor
если i = 0; тогда получится 2
на самом деле результат не определён
🦥Alex Fails
Чуть проще
🦥Alex Fails
Кубики с цифраси
🦥Alex Fails
словосочетание "Второй кубик" из ряда кубиков - это и есть ук-ль)
Anonymous
так i++ + i++;?
Anonymous
если так то будет 1
Anonymous
i++ + ++i + i; ?
Anonymous
будет 4
Anonymous
это уже индусский какой то
Anonymous
i++ + ++i + i++ + ++i;
Anonymous
)))
Anonymous
i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i + i++ + ++i; вот так лучше)
🦥Alex Fails
Да. Я.
Anonymous
будет 392
Habetdin
Или не придет, UB же 😂
Денис
Внимательнее!..
А что не так?
Square
А что не так?
Там присваивание
Square
И проверяется результат присваивания - а это всегда истина
Square
После первого присваивания все выражение становится истинным
Square
Условия else вообще не проверяются
Square
Хотя моя логика тоже ошибочна ...
Square
По моей логике будет 5 а не 3
Денис
Хотя моя логика тоже ошибочна ...
Как только 3 присвоится дальше ничего не проверяется
Square
Надо на точки следования разбить