C++ | Что выведет программа #12?

Поделиться
HTML-код
  • Опубликовано: 1 окт 2024
  • #cpp #cppquiz #cpplus

Комментарии • 41

  • @java_art202
    @java_art202 7 месяцев назад +8

    Ого! Как интересно и понятно Вы объясняете! Спасибо Вам огромное!

  • @andry_smith
    @andry_smith 6 месяцев назад +5

    Поэтому у нас в компании по рукам бы настучали за такую запись. Код должен быть в первую очередь удобным в чтении. Каждое объявление в новой строке. А ещё бы за перекрытие переменных одинкаовыми именами в догонку бы прилетело. )))

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад

      Это задачка с собеседования, вряд ли кто-то так будет писать код.

    • @andry_smith
      @andry_smith 6 месяцев назад

      @@DariaEmacsЯ понимаю, но зачем ставить в собеседование заранее неприемлемые паттерны? Есть же достаточно потенциальных проблем в обычных казалось бы строках кода. Просто джуны будут сыпаться на таком, а оно нигде такое не делается.

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +1

      @@andry_smith благодаря этому коду достаточно просто определить уровень знания языка у кандидата. Послушать его размышления о том, как работает этот код.

  • @mihailmatkovskij9350
    @mihailmatkovskij9350 3 месяца назад

    Хоть и философия C++ разрешает программисту писать неправильно, но всё же, следует сначала объявить переменную, а потом обращаться к ней. В идеале, сначала идет раздел объявления переменных, затем, раздел инициализации, и только затем идет выполнение операций.

  • @mihailmatkovskij9350
    @mihailmatkovskij9350 3 месяца назад

    При таком кодинге у вас будет предупреждение о том, что обявленный идентификатор скрывает уже существующий. И хоть ошибки не будет, но такое дублирование переменных является плохим стилем программирования. Возникает путаница. Таким образом, это не более чем просто забавный пример. Профессиональные программисты так не делают.

  • @_wania
    @_wania 5 месяцев назад +1

    В приличном обществе за такой код канделябром бьют

  • @cdeblog
    @cdeblog 6 месяцев назад +2

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

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад

      Чукча - не читатель, чукча - писатель.

  • @alehaymkm
    @alehaymkm 7 месяцев назад +2

    Вроде и элементарно, но не тривиально.

  • @paranoiiik484
    @paranoiiik484 6 месяцев назад +5

    "жи".. это, конечно, жёстко

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад

      А надо было "же"?

    • @paranoiiik484
      @paranoiiik484 6 месяцев назад

      Нужно было читать букву английского алфавита так, как она действительно произносится =)
      Это так.. на заметку. Никто не запрещает продолжать читать по-сельски

    • @und3rwit
      @und3rwit 6 месяцев назад +1

      ​@@DariaEmacs джей

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +5

      @@paranoiiik484 как бы нет, читается обычно, и, жи, ка, ijk, для тех, кто университет заканчивал. Это из математики пришло. Если у вас джей, значит, вы самоучка.

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад

      @@und3rwit нет, выше ответила

  • @stvdedal
    @stvdedal 6 месяцев назад

    я ошибся, подумал что тут оператор ','

  • @giorgi_pa
    @giorgi_pa 6 месяцев назад

    Это во всех компиляторах такое поведение??? Спрашиваю т.к был ровно аналогичный случай и в Релизе результат был ой как не такой.

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +1

      Тогда у Вас был компилятор с ошибкой, отловите и зашлите патч. Он должен вести себя по стандарту: timsong-cpp.github.io/cppwp/n4659/basic.scope.declarative#2

  • @staf5496
    @staf5496 6 месяцев назад

    Спасибо за способ писать код. И + еще добавить отсутствие комментариев и какого либо описания 😂

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +1

      Это не способ писать код. Это вопрос с собеседования, для того, чтобы узнать ваш уровень знания языка.

  • @alexanderushakov4892
    @alexanderushakov4892 6 месяцев назад

    А почему амперсанд вначале около типа находится, а при выделении он прилепает к имени i, в таком случае логически понятно, что она является ссылкой на перемеенную с типом int, а j это просто переменная типа int. А вот, когда амперсанд приклеен к типу, почему надо понимать, что это не объявление двух ссылок на переменную с типом int, просто второй еще не присвоен адрес ) всегда это путает меня

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +1

      Компилятору всё равно, а люди пишут и так и так. Просто нужно это понимать и держать в голове, когда читаешь код 😉.

  • @visualoffchannel
    @visualoffchannel 6 месяцев назад

    Где-то повесился один питонист.

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад

      Только один?

  • @nikitross7466
    @nikitross7466 6 месяцев назад

    Так переменные об'являют только студенты

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +1

      Программа составлена с целью проверить Ваши знания, как вариант того, что у Вас спросят на собеседовании.

    • @nikitross7466
      @nikitross7466 6 месяцев назад

      @@DariaEmacs Сам пример хороший)

  • @TheTalants
    @TheTalants 6 месяцев назад

    Даже в ассемблере проще 🤔
    Наверное...

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад +1

      Так ассемблер самый простой язык)).

    • @TheTalants
      @TheTalants 6 месяцев назад

      @@DariaEmacs язык простой, но нужно знать устройство для которого код пишешь. 🤔
      Хотя для меня и ассемблер сложно.

    • @DariaEmacs
      @DariaEmacs  6 месяцев назад

      @@TheTalants , да, это точно