#5. Переменные и их базовые типы. Модификаторы unsigned и signed | Язык C для начинающих

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

КОМЕНТАРІ • 53

  • @stepanbrop9888
    @stepanbrop9888 Рік тому +16

    Изучаю у Вас SQLite .. Уже не знаю, куда ставить второй лайк на видео) Четко, без воды, понятно и доступно! И ни за какие курсы платить не надо! ВЫ-ЛЕГЕНДА! Я Вам очень сильно благодарен за такую работу! Всем добра и счастья!)

  • @ivanovv9329
    @ivanovv9329 5 місяців тому +6

    Это настолько углублённый и разжёванный курс, что поймёт даже пятилетка! Огромное спасибо за проделанную работу. Ваши старания абсолютно бесплатно, за что тройной респект. Если бы вы были инфоцыганом, заманивающим аудиторию на свои курсы, я бы с радостью на них записался! С моим мнением согласны многие, судя по комментариям. Всего вам наилучшего

  • @ГлебСуворов-й5д
    @ГлебСуворов-й5д 7 місяців тому +9

    Лучший курс по Си, который видел

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ Рік тому +11

    Ура! Новый урок! Посмотрел с удовольствием. Знаю немного пайтон, очень интересно посмотреть на программирование со стороны языка С. Спасибо большое

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

    Зачет !!!! Уникальный канал.... Спасибо автору за достойную работу!

  • @siarheiulas6969
    @siarheiulas6969 6 місяців тому +1

    Большое спасибо за работу! Просмотр материала - удовольствие!

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

    И снова лайк за проделанную работу!!! Нужные уроки, качественная подача материала, заодно и память освежу!!!

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

    Формально, по стандарту C99 типы char, signed char и unsigned char - это три разных типа. Фактически на практике char обычно эквивалентен signed char или unsigned char - зависит от компилятора (вернее, от настроек компилятора).
    Для облегчения переносимости есть стандартный заголовочный файл stdint.h, где задаются типы вроде int16_t (равно 16 бит), чтобы не зависеть от длины целых типов на разных платформах.

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

    Спасибо. Полезно и доходчиво!

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

    Люблю вас и ваши уроки!🥰

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

    Как говорится, "Си мы любим не за это" 😊

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

    Огромное спасибо!

  • @Просточеловек-э6ы
    @Просточеловек-э6ы 5 місяців тому +1

    Спасибо👍

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

    Спасибо! 👏👍

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

    спасибо!👏👍

  • @Dina-sc5ks
    @Dina-sc5ks Рік тому +3

    Здравствуйте! Очень благодарна Вам за канал, за ваш труд. Вы можете записать видео по сегментации медицинских снимков? 🙏🙏🙏

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

    спасибо

  • @Kvihant
    @Kvihant Місяць тому +1

    ТОВАРИЩИ, расскажите, как запустить режим отладки, пожалуйста!!!

  • @ИгорьК-т1ш
    @ИгорьК-т1ш Рік тому

    В таблице стоило бы показать и беззнаковые типы и их диаппазоны, как мне кажется: unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long

  • @twetowncity
    @twetowncity 3 місяці тому +1

    Есть вопрос, после компиляции программы с переменными ячейка памяти освобождактся или как?

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

    Очень интересно, как можно проверить, что когда мы присваиваем значение одного итератора другому, что мы копируем его значение в другую ячейку памяти, а не ссылаемся ну туже самую ячейку.

  • @Jheronimus_Bosch
    @Jheronimus_Bosch Рік тому +3

    Спасибо большое за Ваши выпуски! Скажите, а есть возможность задавать переменные как ссылки, как, например, в PHP или в Rust? Например, создавать $a = 5, $b = &$a, при этом они ссылаются на одну и ту же область памяти, и меняя $b, меняется и $a? Это могло бы повысить быстродействие и помогло бы реализовать отложенные вычисления, как сделано в PHP.

    • @Alexey-gp7vc
      @Alexey-gp7vc Рік тому +3

      Погугли про указатели и/или дождись видео про них здесь. Это одна из ключевых штук :)

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

      Конечно, это делается через указатели. Об этом далеко впереди )

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

      @@selfedu_rus Спасибо!

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

      @@Alexey-gp7vc Спасибо!

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

    спасибо! Только char тоже знаковый

    • @selfedu_rus
      @selfedu_rus  5 місяців тому

      стандартом не оговорено, может быть и знаковым и беззнаковым

  • @grayich
    @grayich Рік тому +3

    Непонятно по поводу *char* . Она как символ и она же как число. Правильно понимаю, что её создали для работы с символами, но потом посидели, почесали затылки и её же определили как однобайтовый тип для чисел, чтоб не плодить ещё 1 схожий тип данных но только для чисел? И отличие её от например short не только в размере, но и в умении конвертировать символ-число-символ? Получается тип char медленее типа short ?

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

      нет, не так, в следующем видео я поясняю этот момент, скоро выйдет

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

    Sehr gut

  • @ДохлыйЁжик-з2б
    @ДохлыйЁжик-з2б Рік тому +2

    А после курса по С, курс по плюсам будет?

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

      он уже есть - это ооп С++

  • @VitalyBessonov
    @VitalyBessonov 9 місяців тому +1

    Занятно, получается тип "строка" в Си нет, а есть лишь набор символов каждый из которых хранится в одной ячейке из 8 бит? Бедный char в ответе за всё. И еще вопрос, при записи в память char как я понял 1 байт это минимально допустимое выделение памяти. Т.е. число 2 будет записано как 00000010. А можно ли в этом случае получать доступ к отдельному биту внутри ячейки байта?

    • @selfedu_rus
      @selfedu_rus  9 місяців тому

      1. На самом деле все языки программирования "под капотом" так хранят строки.
      2. Да, минимальный объем памяти один байт (как правило, 8 бит, но не всегда и зависит от архитектуры компьютера).
      3. Для работы с отдельными битами используются битовые операции, о них отдельное занятие в этом курсе.

    • @VitalyBessonov
      @VitalyBessonov 9 місяців тому

      @@selfedu_rus Благодарю Вас!

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

    Начинать имена обычных переменных с подчеркивания не следует, т.к. обычно так называются особые "системные" переменные.

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

    Хм.. может, конечно, от компилятора зависит, но у меня char тоже по умолчанию знаковый, и после 127 идёт переполнение. А если указываю unsigned, то 128, 129 и т.д. уже нормально записывает.

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

      да, это зависит от компилятора

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

    У меня рядом с переменными в режиме отладки сообщение: byte_memory = 100 '. Почему такое может быть?

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

    Топчик

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

    // Почему компилятор не ругается, если в "signed char a;" поместить число 128,
    // которое превышает диапазон от -128 до 127
    // в отладчике будет a=-128
    signed char a;
    a=128;
    // И для int аналогично int диапазон от -2 147 483 648 до 2 147 483 647
    int x;
    x=2147483648;
    // в отладчике будет x=-2147483648

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

      Возможно, из-за отсутствия флага -Wall в настройках компилятора gcc. А, вообще, это число просто будет храниться в a как -128

  • @ceo-s
    @ceo-s Рік тому +2

    long d;
    ))))

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

    Вот только не понял, как в памяти хранится, знаковый или беззнаковый тип, хранятся же они одинаково

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

      Хранятся биты, а как они интерпретируются, как знаковые числа или беззнаковые определяется типом данных.

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

      @@selfedu_rus а тогда возникает у меня ещё вопрос, вот значение переменной, в ячейке, скажем, так которая имеет адрес. Где тогда хранится тип переменной, и как все это вместе держится (тип и значение)

    • @Владимир-ж7в9ю
      @Владимир-ж7в9ю Рік тому

      На сколько я понял, на этапе компиляции появляются таблицы соответствия ячеек и типа хранящейся там информации. Но после создания исполняемого файла эти таблицы исчезают: в машинном коде их нет. Если посмотреть код на ассемблере объявления переменных типа long long, char, float - код явным образом различается для разных типов. Таким образом, информация о типе переменной в конкретной части памяти "встраивается" компилятором в сам машинный код.

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

    09:29 _прастити_ , но оно не оранжевое )

  • @blackdragon7047
    @blackdragon7047 Місяць тому

    Спасибо!