#6. Операция присваивания. Числовые и символьные литералы. Операция sizeof | Язык C для начинающих

Поделиться
HTML-код
  • Опубликовано: 10 ноя 2024

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

  • @sofiadybova2872
    @sofiadybova2872 6 месяцев назад +17

    Я очень редко оставляю комментарии на Ютубе
    Но это тот самый случай когда действительно стоит его оставить
    Только благодаря вам я начала понимать язык Си
    Спасибо вам за ваш огромный труд !!!
    С каждым видеороликом полученная информация складывается по полочкам , кирпичик за кирпичиком , деталька за деталькой , формируя прочный и крепкий фундамент без каких либо пробелов
    В конце каждого видеоролика не возникает ни одного непонятного момента или каких либо вопросов
    Огромное Спасибо Вам !!!

  • @iterimmo3804
    @iterimmo3804 Год назад +23

    Учился у Вас языку Python, машинному обучению и нейронным сетям долгое время. Сейчас решил перейти на язык С++, и случайно натыкаюсь, что вы теперь делаете видео по этому языку. Аж на душе приятно стало. Спасибо за уроки по Python и С.

    • @TSM_149
      @TSM_149 Год назад +1

      Осторожно! "C++" и "С" это разные языки.

    • @LeemONad
      @LeemONad 11 месяцев назад +1

      @@TSM_149 В С++ реализовано то что есть в С

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

    Спасибо огромное за ваш гигантский труд! Ваши уроки просто бесподобны, занимаюсь по ним с великим наслаждением!)

  • @alex_step_
    @alex_step_ Год назад +7

    Спасибо!
    Сергей, Вы выставляете ролики быстрей, чем я успеваю их просматривать! 👍

  • @madplayer5
    @madplayer5 Год назад +3

    Ясные и грамотные объяснения! Спасибо!

  • @_mrix_534
    @_mrix_534 Год назад +2

    Огромное спасибо за такие грамотные и доступные уроки! По мере изучения программирования возникают вопросы по разным неочевидным вещям, и ответ обычно находится здесь

  • @ГеоргийКазанцев-ж9в

    Как всегда на высшем уровне!

  • @АлександрБуланов-ч3з
    @АлександрБуланов-ч3з 4 месяца назад +1

    Премного благодарен вам за труды, начинаю изучение вашего канала с языка СИ, но думаю буду еще заглядывать + подписка

  • @faustgete9869
    @faustgete9869 Год назад +1

    Курс прекрасен! Спасибо огромное! С нетерпением ждем остальных серий! Небольшое дополнение по оператору sizeof. Помимо переменной, операндом может быть и любое выржение, тип которого будет вычислен на этапе компиляции.

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

    Очень нравятся ваши занятия! Спасибо!

  • @Dev11son
    @Dev11son Год назад +1

    Спасибо огромное, Сергей! Преподаватель от бога!)

  • @TSM_149
    @TSM_149 Год назад +1

    Спасибо за ролик, продолжаем погружение 👌👍 Like в копилку!

  • @donfedor007
    @donfedor007 Год назад +3

    Очень крутой курс! Спасибо вам!

  • @blackdragon7047
    @blackdragon7047 27 дней назад +1

    Спасибо!

  • @andredru4278
    @andredru4278 10 месяцев назад +1

    Спасибо. Интересно и понятно!

  • @Jheronimus_Bosch
    @Jheronimus_Bosch Год назад

    Большое спасибо за Ваши ролики по языку C! К сожалению, не было времени посмотреть их все и попробовать конструкции из них на практике, но надеюсь ближайшие дни наверстать!

  • @charlesfrost5138
    @charlesfrost5138 Год назад +1

    Спасибо, что обращаете внимание на такие мелочи вроде "l-value". Даже в книгах по программированию это не всегда есть (либо переводчики как-всегда косячат).
    p.s. В принципе, основы Си я и так помню, но слушать вас очень приятно. ;)

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ Год назад +1

    Супер! Продолжаем постигать С

  • @ЕрвандАгаджанян-в3к

    Гениально!

  • @mihail8159
    @mihail8159 8 месяцев назад +1

    Спасибо ❤❤❤

  • @vimbor5034
    @vimbor5034 Год назад +5

    Друзья, мы с вами свидетели создания Сергеем Балакиревым фундаментального труда по Си!!! Сергей, я знаю, что вы автор методических пособий по разным дисциплинам. Может замахнетесь на книгу (пособие) по этому курсу? Или видеоформат с текстовым вариантом (в будущем) вам ближе?

    • @selfedu_rus
      @selfedu_rus  Год назад +2

      Спасибо, стараюсь! Пока сделаю видео + текст, а потом... может к сообществу обращусь, чтобы текст оформили в виде пособия? Как вариант? Надо подумать.

  • @igorpoll2134
    @igorpoll2134 4 месяца назад +1

    спасибо!

  • @ramzbew5674
    @ramzbew5674 Год назад +8

    А после вводного курса планируется "продвинутый" курс по Си ? К примеру в python есть библиотека requests для парсинга, но она не предоставляет низкий доступ, и некоторые сайты "палят" софт через фингерпринт. И мне человек один шепнул, что этот фингерпринт можно как-то подменить под браузерный, на языке низкого уровня например на Си, Го и тд

    • @selfedu_rus
      @selfedu_rus  Год назад +3

      пока базовый делаю

    • @dr.margulis7773
      @dr.margulis7773 Год назад +5

      @@selfedu_rus ОЧЕНЬ будем ждать продвинутый. Пожалуйста, не бросайте нас, своих подписчиков. 😊

    • @MrVovF22
      @MrVovF22 10 месяцев назад

      ​@@dr.margulis7773 давишь на жалость, тем самым пытаешься манипулируешь

  • @jamjam3337
    @jamjam3337 Год назад +1

    спасибо!👏👍

  • @РусланКарнеенко
    @РусланКарнеенко 9 месяцев назад +1

    СПАСИБО

  • @grayich
    @grayich Год назад +5

    07:31 ещё в двоичной форме, через префикс 0b, например 0b0101

    • @Stresscms
      @Stresscms Год назад +1

      Формально такой записи в Си нет. (Даже в С11 не ввели и это, по моему мнению, дичь). Однако разработчики GCC добавили такой формат записи. В другом компиляторе вы можете столкнуться (и даже скорее всего столкнетесь)с тем, что компилятору не понравится такая запись.

    • @grayich
      @grayich Год назад +1

      @@Stresscms хм, тогда это очень странно, ведь си по близости к железу почти как асм, и местами очнеь удобно именно двоичные данные использовать.

    • @Stresscms
      @Stresscms Год назад

      @@grayich Посмотрел статью на вики про C2x. Судя по введениям все же дожали и добавили двоичные литералы типа 0b и 0B.

  • @EdenLollys
    @EdenLollys Год назад +1

    спасибо

  • @Dr.ShtefanNein
    @Dr.ShtefanNein 8 месяцев назад +2

    9:29 почему используется именно "unsigned"? Неужели я не могу использовать отрицательный числовой литерал?

  • @grayich
    @grayich Год назад +3

    06:59 не совсем понятно, "если значение не умещается в диапазон, то компилятор автоматически подбирает размер типа данных", это происходит только при инициализации совмещённой с присваиванием или даже в том случае когда инициализация и присваивание значения происходят отдельно?

    • @selfedu_rus
      @selfedu_rus  Год назад +2

      Это тип представления самого литерала в памяти. При операции присваивания это число будет записано в соответствии с типом переменной.

    • @grayich
      @grayich Год назад

      @@selfedu_rus что-то ерунда получается, пишу *int mmm = 100000000000000000000;* компилирую как *gcc -std=c99*, в ответ предупреждение, что значение велико для этого типа, а потом следующее:
      *overflow in conversion from «long int» to «int» changes value from «7766279631452241920» to «1661992960» [-Woverflow]*
      т.е. увеличения размерности типа не происходит + обрезало непонятно почему до такого числа

    • @selfedu_rus
      @selfedu_rus  Год назад +1

      @@grayich это предупреждение из-за присваивания такого большого числа переменной типа int. Напишите просто:
      100000000000000000000;
      без присваивания и не будет предупреждений.

    • @olegkomlev
      @olegkomlev Год назад +1

      Литерал тоже имеет определенный тип: 1, 1L и 1LL - вообще-то не одно и то же. Но при присваивании переменной или при операциях могут происходить автоматические преобразования (например, отбрасывание старших байтов ). 7766279631452241920 = 6BC7 5E2D 6310 0000_16 занимает 8 байтов (в 4-байтовый тип int не влезает), число 1661992960=6310 0000_16 занимает 4 байта. В данном случае старшие 4 байта были отброшены, чтобы число поместилось в int.

  • @ШамильРамазанов-с9ю

    Топчик

  • @suhomlinov-vitaliy
    @suhomlinov-vitaliy 9 месяцев назад +1

    Здравствуйте, я хотел бы уточнить один момент. Правильно ли я понимаю, что если sizeof передать переменную, то он возвращает не то сколько реально занимает ее значение, а тот обьем который зарезервирован под тип данных этой переменной? То есть если в переменной типа int будет записано значение 1, то вернется значение того сколько памяти выделено под тип int, а не конкретно сколько байт занимает число 1.

    • @selfedu_rus
      @selfedu_rus  9 месяцев назад +1

      число 1 в переменной типа int будет занимать столько, сколько занимает тип int ))

    • @suhomlinov-vitaliy
      @suhomlinov-vitaliy 9 месяцев назад

      ​@@selfedu_rus Кажется я понял смысл, спасибо)

    • @Ordinary_man2049
      @Ordinary_man2049 8 месяцев назад +1

      Представь, что ты взял в собой бутылку воды литровую. Налить туда воды ты можешь сколько угодно, но размер бутылки от этого не поменяется. Если ты решил взять глоток воды с собой, то остальной объем будет не задействован. Также и в области памяти. Если ячейка памяти занимает 8 бит, то число 1 будет иметь вид 00000001. И число 1 будет весить 8 бит по той причине, что нули в этой маске - это тоже данные, которые указывают на значение этих самых битов. Можно еще такой пример. Если перед тобой пустая коробка, то на ней надо написать, что она пустая. Эти данные занимают какое-то место, но эти данные указывают на отсутствие данных. Как-то так :D

    • @suhomlinov-vitaliy
      @suhomlinov-vitaliy Месяц назад

      @@Ordinary_man2049 Спасибо!

  • @АртемФедулов-у3э
    @АртемФедулов-у3э Год назад +1

    а можно ли в char хранить utf-8 символы, выходящие за пределы одного байта (подозреваю, что нет, ведь char ограничен одним байтом)? например char c = 'ж'; кидается в меня ворнингом о переполнении и в терминал выводит битый символ.

    • @selfedu_rus
      @selfedu_rus  Год назад +1

      нельзя, вы сами ответили верно на свой вопрос )

  • @alexandervalter
    @alexandervalter Год назад +3

    У меня к автору только одна большая претензия: ну почему так редко выходят видео? :))

  • @АлексейАлексеев-ц8х9т

    то есть, если изначально определить переменную как char (char var;), а потом этой var присвоить значение превышающее 255 (var = 299;), то тип переменной вар изменится на int?

    • @selfedu_rus
      @selfedu_rus  Год назад

      нет, тип переменных в Си не меняется, а вот представление числового литерала зависит от его размера

    • @АлексейАлексеев-ц8х9т
      @АлексейАлексеев-ц8х9т Год назад +1

      @@selfedu_rus тогда не совсем понимаю. Если определить переменную var как int, а потом ей присвоить 358L, тип var останется int. Но тогда для чего менять представление литерала в отличный тип данных от переменной, которой он присваивается?

    • @selfedu_rus
      @selfedu_rus  Год назад +1

      @@АлексейАлексеев-ц8х9тэто полезно при арифметических операциях, когда фигурируют разные типы переменных и нужно быть уверенным, что мы их правильно описали и воспринимаем

    • @olegkomlev
      @olegkomlev Год назад +1

      Указывать префикс при числовом литерале может быть важно при операциях с разными литералами в одном выражении. Например, sizeof(1) и sizeof(1L) дадут разные результаты.

  • @nn1413
    @nn1413 Год назад

    18:32 то есть мы объявили переменную d2 как тип double, а потом, если присвоить ей значение -7 без точки, то получаем тип int.. Так в итоге у d2 будет тип double или int?

    • @selfedu_rus
      @selfedu_rus  Год назад

      Типы переменных в языке Си не меняются. Поэтому, чего бы не присваивалось d2, его значение будет интерпретироваться как вещественное число.

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

    что показывает мне автор видео Что вижу я после нажатия кнопки ввода Warning: Debuggee TargetArchitecture not detected, assuming x86_64.

  • @Sergey_Klimov
    @Sergey_Klimov 11 месяцев назад

    А если у человека клавиатура только на русском или на китайском, как он нажмёт "d"?
    Может лучше все таки код символа?

  • @VasilyMT
    @VasilyMT Год назад +1

    Вы бы на boosty зерегились что ли... ☺

  • @mammonth
    @mammonth Год назад +2

    Первый

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

    R-value и L-value, просто, бетонный блок непонимания передо мной😞

    • @selfedu_rus
      @selfedu_rus  Год назад +1

      да не обращайте на это пока внимание, на начальных этапах совершенно не принципиально!