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

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 65

  • @sofiadybova2872
    @sofiadybova2872 7 หลายเดือนก่อน +19

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

  • @iterimmo3804
    @iterimmo3804 ปีที่แล้ว +24

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

    • @TSM_149
      @TSM_149 ปีที่แล้ว +1

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

    • @LeemONad
      @LeemONad ปีที่แล้ว +1

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

  • @alexandrkozhevnikov2601
    @alexandrkozhevnikov2601 7 หลายเดือนก่อน +7

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

  • @alex_step_
    @alex_step_ ปีที่แล้ว +8

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

  • @_mrix_534
    @_mrix_534 ปีที่แล้ว +3

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

  • @madplayer5
    @madplayer5 ปีที่แล้ว +4

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

  • @faustgete9869
    @faustgete9869 ปีที่แล้ว +1

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

  • @АлександрБуланов-ч3з
    @АлександрБуланов-ч3з 5 หลายเดือนก่อน +1

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

  • @ГеоргийКазанцев-ж9в
    @ГеоргийКазанцев-ж9в ปีที่แล้ว +5

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

  • @siarheiulas6969
    @siarheiulas6969 6 หลายเดือนก่อน +1

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

  • @TSM_149
    @TSM_149 ปีที่แล้ว +1

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

  • @Dev11son
    @Dev11son ปีที่แล้ว +1

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

  • @andredru4278
    @andredru4278 11 หลายเดือนก่อน +1

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

  • @donfedor007
    @donfedor007 ปีที่แล้ว +3

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

  • @Jheronimus_Bosch
    @Jheronimus_Bosch ปีที่แล้ว

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

  • @charlesfrost5138
    @charlesfrost5138 ปีที่แล้ว +1

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

  • @grayich
    @grayich ปีที่แล้ว +5

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

    • @Stresscms
      @Stresscms ปีที่แล้ว +1

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

    • @grayich
      @grayich ปีที่แล้ว +1

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

    • @Stresscms
      @Stresscms ปีที่แล้ว

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

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ ปีที่แล้ว +1

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

  • @blackdragon7047
    @blackdragon7047 2 หลายเดือนก่อน +1

    Спасибо!

  • @mihail8159
    @mihail8159 9 หลายเดือนก่อน +1

    Спасибо ❤❤❤

  • @vimbor5034
    @vimbor5034 ปีที่แล้ว +5

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

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +2

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

  • @ЕрвандАгаджанян-в3к
    @ЕрвандАгаджанян-в3к ปีที่แล้ว +1

    Гениально!

  • @ramzbew5674
    @ramzbew5674 ปีที่แล้ว +8

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

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +3

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

    • @dr.margulis7773
      @dr.margulis7773 ปีที่แล้ว +5

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

    • @MrVovF22
      @MrVovF22 11 หลายเดือนก่อน

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

  • @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.

  • @jamjam3337
    @jamjam3337 ปีที่แล้ว +1

    спасибо!👏👍

  • @igorpoll2134
    @igorpoll2134 5 หลายเดือนก่อน +1

    спасибо!

  • @staypawsitive3549
    @staypawsitive3549 7 หลายเดือนก่อน +1

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

  • @Dr.ShtefanNein
    @Dr.ShtefanNein 9 หลายเดือนก่อน +2

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

    • @vitaliy_harttman
      @vitaliy_harttman 5 วันที่ผ่านมา

      А кто тебе мешает? Делай, а потом посмотри результат и делай выводы.

  • @РусланКарнеенко
    @РусланКарнеенко 11 หลายเดือนก่อน +1

    СПАСИБО

  • @EdenLollys
    @EdenLollys ปีที่แล้ว +1

    спасибо

  • @nn1413
    @nn1413 ปีที่แล้ว

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

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

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

  • @АртемФедулов-у3э
    @АртемФедулов-у3э ปีที่แล้ว +1

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

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +1

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

  • @alexandervalter
    @alexandervalter ปีที่แล้ว +3

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

  • @suhomlinov-vitaliy
    @suhomlinov-vitaliy 10 หลายเดือนก่อน +1

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

    • @selfedu_rus
      @selfedu_rus  10 หลายเดือนก่อน +1

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

    • @suhomlinov-vitaliy
      @suhomlinov-vitaliy 10 หลายเดือนก่อน

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

    • @Ordinary_man2049
      @Ordinary_man2049 9 หลายเดือนก่อน +1

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

    • @suhomlinov-vitaliy
      @suhomlinov-vitaliy 2 หลายเดือนก่อน

      @@Ordinary_man2049 Спасибо!

  • @АлексейАлексеев-ц8х9т
    @АлексейАлексеев-ц8х9т ปีที่แล้ว +1

    то есть, если изначально определить переменную как 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) дадут разные результаты.

  • @ШамильРамазанов-с9ю
    @ШамильРамазанов-с9ю ปีที่แล้ว +1

    Топчик

  • @Sergey_Klimov
    @Sergey_Klimov ปีที่แล้ว

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

  • @VasilyMT
    @VasilyMT ปีที่แล้ว +1

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

  • @АндрейИванов-е6о4т
    @АндрейИванов-е6о4т ปีที่แล้ว +1

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

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +1

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

  • @mammonth
    @mammonth ปีที่แล้ว +2

    Первый