#22. Оператор цикла while | Язык C для начинающих

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ • 25

  • @ИгорьРубацкий-ч1о
    @ИгорьРубацкий-ч1о 11 днів тому +1

    Сергей, Вы, просто, молодец. Уважение Вам. 👍🔥

  • @Woldraks
    @Woldraks 25 днів тому +1

    Большое спасибо, все понятно и четко.

  • @АндрейИванов-е6о4т

    Утром отлично заходит👍😎

  • @siarheiulas6969
    @siarheiulas6969 5 місяців тому +2

    Большое спасибо! Как всегда всё объяснено подробно и доступно!

  • @andredru4278
    @andredru4278 10 місяців тому +2

    Спасибо. Все понятно.

  • @donfedor007
    @donfedor007 Рік тому +1

    Спасибо! Очень интересно!!!

  • @РусланКарнеенко
    @РусланКарнеенко 10 місяців тому +1

    Спасибо

  • @ufc_uz6
    @ufc_uz6 Рік тому +2

    Спасибо!

  • @minma123
    @minma123 5 місяців тому +1

    спасибо мегаполезно

  • @renigat_tv9051
    @renigat_tv9051 Рік тому +2

    Отличное объяснение материала !!!

  • @jamjam3337
    @jamjam3337 Рік тому +1

    спасибо!👏👍

  • @KlimSanko-uz4gt
    @KlimSanko-uz4gt 3 місяці тому +1

    😮

  • @weerbox
    @weerbox Рік тому +1

    По поводу условия (++i

    • @weerbox
      @weerbox Рік тому

      Погуглил, почитал 99 стандарт и пришёл к такому выводу.
      В выражении (i++

    • @selfedu_rus
      @selfedu_rus  Рік тому

      Все логические операции (&&, ||) являются точками следования, т.е. все побочные эффекты выполняются при переходе к следующему подусловию. Поэтому операции инкремента выполнятся до проверки i

    • @weerbox
      @weerbox Рік тому

      @@selfedu_rus это как раз понятно, вопрос был не в этом. Я про то, верно ли я понял, что n++, возвращает копию данных (rvalue), а уже после, до начала следующей точки следования происходит инкремент n (lvalue). Т.е. тогда утверждение из более раннего видео, где говорилось, что в операторе вида i = n++; происходит сначало присвоение i = n, а затем инкремент n, не совсем верно, т.к. согласно стандарта, точный момент инкремента n в данном случае не определен, но должен произойти до начала следующей точки следования. Т.е. инкремент n вполне может произойти и до присвоения значения i, т.к. операция присвоения не является точкой следования.

    • @selfedu_rus
      @selfedu_rus  Рік тому

      @@weerbox Не совсем понимаю тогда вопроса. В команде:
      i = n++;
      переменной i присваивается именно копия n (как иначе?), а значит, инкремент сработает точно, после присваивания, иначе копия n оказалась бы на единицу больше (инкремент на уровне машинных кодов работает с самой переменной), а это уже противоречение порядка работы постфиксной формы инкремента.

    • @weerbox
      @weerbox Рік тому

      @@selfedu_rus А почему вы не рассматриваете такой вариант?:
      1. n++ возвращает копию значение равное значению n (это же еще не присвоение в i, а вычисление правого операнда, ведь выражение может быть и чуть сложнее например i = n++ + 1;)
      2. n инкрементится (при этом возвращенное n++ rvalue не меняется т.к. оно не ассоциировано с областью памяти на которое ссылается n)
      3. i присваевается вычисленное правостороннее выражение (в котором не использовалось инкременченное значение n)
      А если бы было точно известно, что инкрементится только после присвоения, то тогда бы, как я понимаю, не было никакого неопределенного поведения в операторах типа:
      i = n++ + n++;
      i = n++ + n;
      i = i++;
      и т.д.
      Вот что написано в 99 стандарте по этому поводу:
      "The result of the postfix ++ operator is the value of the operand. After the result is
      obtained, the value of the operand is incremented. (That is, the value 1 of the appropriate
      type is added to it.) ... The side effect of updating the stored value of the operand shall occur between
      the previous and the next sequence point."
      А так как присвоение не является sequence point, следовательно инкремент возможен как до (т.е. на начале инструкции i = n++;), так и после присвоения (т.е. до следующей точки следования), отсюда и ub в тех примерах выше. Я так понимаю.

  • @TheTVfootbal
    @TheTVfootbal Рік тому +2

    Очень понравились ваши уроки по Flask, хотел бы узнать будут ли по Fast API?

  • @martinbecker3165
    @martinbecker3165 Рік тому +1

    Здравствуйте. Почему видео 35, а показывает 23, 12 скрыто, или есть условия для их просмотра ?

    • @selfedu_rus
      @selfedu_rus  Рік тому +2

      Они будут постепенно выходить.

  • @elbinalfadorson3822
    @elbinalfadorson3822 Рік тому

    Подскажите, а cin >> из С++ тоже можно с while запихнуть как scan()?