Программирование на Си. #14. Указатели.

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

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

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

    🚀 Подписывайся на мой канал в Telegram: @antg_official
    🚀 И заходи на сайт: antg.pro!

  • @СергейКурмей-я9ь
    @СергейКурмей-я9ь 2 ปีที่แล้ว +2

    1:29:13 "Я буду повторять пока вы не устанете." Повторю, что ты просто лучший. красавкчик. просто Бог. спасибо большое за этот курс!

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

    Объяснения супер!! Гена, обязательно продолжай этот проект! Я послушал все уроки до этого момента и потом посмотрел видео других вещателей по программированию на языке С. И имея правильную элементную базу в ПОНЯТИЯХ, начал замечать какие грубые ошибки допускают эти вещатели своих знаний в программировании. Видимо они понимают тему на уровне ЗАПОМИНАНИЯ (зазубривания) , а НЕ ПОНИМАНИЯ. Поэтому допускают недопустимые оговорки и не поправляются. Твоя манера донесения знаний педантична и строга к ОСНОВНЫМ ПОНЯТИЯМ, к азам. Молодец! В конечном итоге ты даешь такие знания, чтобы обучаемый ДУМАЛ и САМ отвечал на любой вопрос. А зная эти азы правильно произносил свои мысли. Это как в математике. Любую теорему нужно ПОНИМАТЬ. Только тогда ты произнесёшь правильно СВОИМИ СЛОВАМИ ЕЁ СУТЬ. И как правило произнесенное будет таким же как и сама теорема! В математике нет лишних слов!! )))

  • @TheVladBerlin
    @TheVladBerlin 9 ปีที่แล้ว +25

    Я перерыл пол интернета - эти уроки лучшие! Огромный респект!
    Особенно порадовало углубление в информацию, я всегда задаюсь вопросами типа "а почему именно так?"
    наконец-то кто-то дает на них ясные ответы

  • @incognito_leathercraft_86
    @incognito_leathercraft_86 9 ปีที่แล้ว +46

    Гена, огромное тебе человеческое спасибо, за этот труд и силы, которые ты вложил в эти уроки, объясняешь четко, все понятно, лично я обязательно просмотрю и платные твои видео, в общем, огромный респект за проделанную работу, с нетерпением жду новые выпуски.)

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

      +Егор Тюриков Спасибо большое ))

    • @АлександрПоляков-ж7ф
      @АлександрПоляков-ж7ф 8 ปีที่แล้ว +1

      +Gena ANTG и от меня огромное спасибо. Хотелось бы узнать, когда появятся новые видео, а также на счет сайта и платных курсов. Заранее благодарю.

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

      ada dasda Сайт будет очень скоро! Видео будут на днях, над курсом идет работа ;) Подробная информация по продвинутому курсу будет на сайте.

  • @sambukko
    @sambukko 8 ปีที่แล้ว

    Начал изучать язык Си с Ваших видео.
    Не смотря на то, что слишком затянуто, всё очень доходчиво и понятно, за это огромное спасибо.
    За пару вечеров просмотрел все Ваши 14 видео на эту тему.
    Но учитывая, что разница во времени выхода 1го и 14го видео-уроков больше полутора лет, то оставил надежду освоить Си исключительно на Ваших видео, т.к. за это время мы прошли пару-тройку глав любого самоучителя.
    Дальше, судя по всему, на эти самоучители-то вся и надежда. Что, конечно, затруднит освоение языка.
    В любом случае, Гена, Вам благодарность за труды.

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

    Геннадий, не перестану благодарить за ваш труд! Спасибо большое! Очень доступно!

  • @legacy.c9524
    @legacy.c9524 9 ปีที่แล้ว +3

    Генадий, спасибо за все ваши уроки по програмированию на С.
    Вы объясняете очень доступно и понятно.

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

    Хорошая аналогия. Пример с расчетным счетом в банке. Переменная в данном случаи это наличность в бумажном виде, банкноты. Мы можем увеличить наличность(изменять значение переменной), то есть взять валютой 100 дол и положить в банк (увеличить переменную на единицу например). А указатель был бы доступ к расчетному счету в банке посредством кредитной карты, то есть фактически кредитная карта была бы ключем(адресом) к ячейке в банке где храниться наличность (переменная). И с помощью кредитной карты мы можем увеличивать наличность(изменять переменную) или проводить иные операции. Надеюсь инфа будет полезна, мне лично по такому примеру было понятнее.

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

    А ты хорош) Так понятно даже некоторые преподаватели ВУЗов не могут объяснять.

  • @ГруппаЗПІ-зп53
    @ГруппаЗПІ-зп53 9 ปีที่แล้ว +1

    Добрый день.
    Хочу Вас поблагодарить за прекрасные видео уроки. Это поистине великий труд.
    Думаю, что все с нетерпением ждут от Вас новых tutorials

  • @Алексей-й4ц9ж
    @Алексей-й4ц9ж 4 ปีที่แล้ว +1

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

  • @ФирузджонМиров
    @ФирузджонМиров 8 ปีที่แล้ว +1

    E:\Courses\C\programs\lesson14>gcc Program.c -o Program.exe
    E:\Courses\C\programs\lesson14>Program.exe
    One varible: 1
    Two varible: 2
    Three varible: 3
    One address: 0x2752291
    Two address: 0x2752290
    Three address: 0x2752289
    One velue: 1
    Two velue: 2
    Three velue: 3
    One pointer: 10
    Two pointer: 20
    Three pointer: 30
    One varible: 10
    Two varible: 20
    Three varible: 30
    E:\Courses\C\programs\lesson14>
    Гена огромное тебе спасибо, много чего уже изучил благодаря тебе.

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      +Фирузджон Миров Рад что все получается )

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

    Около двух недель как начал вникать в программирование, и уже такой результат - 44 строки кода.
    Это успех!!
    И все благодаря Вам (друзья советовали 👌🏻)
    Очень клево подана информация, прям до мозга костей...
    Особенно откладывается при повторение в конце урока и потом практика( хотя и подглядываю в😝 конспект )
    Такая себе "эйфория" наступает в момент, когда разобрался с программой/её кодом/написанием/особенностями.
    Благодарю за уроки!!
    Продолжайте В ТОМ же духе, пожалуйста 😊

  • @bober9176
    @bober9176 9 ปีที่แล้ว

    Пересмотрел еще раз уроки. Нашел для себя много нового!

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

    Изучал я Си по книжке, все шло нормально до темы "указатели", тут то мне не всё стало понятно, и я решил обратиться к интернету, где и нашел твой канал. Так же решил пересмотреть все видео Си самого начала, хоть уже и имел представление о Си. Хочу лишь сказать, что сильно тебе благодарен за разжеванное объяснение всех тем, в особенности "указатели". Жду с нетерпением твоих уроков.

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      +Саня Чапковский Спасибо!))

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

    Спасибо! Молодец хорошо рассказываешь, хоть понятно, что к чему!

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

      Пожалуйста! ))

    • @thenikitosios7812
      @thenikitosios7812 8 ปีที่แล้ว

      Все еще не могу понять, зачем нужно указывать тип переменной в декларировании указателя. Ведь по сути мы декларируем переменную, которая хранит адрес. Может нужно указывать тип char в декларировании указателя, чтобы указатель знал, что переменная, на которую он указывает, занимает 1 байт? Тогда если указатель указывает на тип int (а он занимает 4 байта), то нужно указать в декларировании этого указателя тип int*, тогда указатель будет хранить адрес первого байта переменной и будет знать, что его переменная занимает еще 3 байта после данного, а это, в свою очередь, нужно для корректного разименования. Надеюсь, понятно объяснил. Так я правильно понимаю?

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      The Nikitosios! Мы брали адреса переменных для простоты примера. Текст не осилил, просьба писать лаконичнее, если это вопрос.

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

      Ладно, постараюсь покороче.
      В декларации указателя для переменной типа short:
      "short* varP = &var"
      нужно указывать тип short только для того, чтобы при операции
      "printf("%i", *varP)"
      компилятор знал, что выводить нужно число, содержащееся в указанной ячейке памяти и размером 2 байта(тип short). Если не указывать тип, то компилятор не знает, сколько цифр нужно выводить, начиная от указанного бита. Я правильно понимаю?

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      The Nikitosios! Тип - это размер в байтах, выделенный для хранения данных / значений. В целом вы верно написали. Смотрите уроки от начала, и таких вопросов не будет.

  • @AdmNice
    @AdmNice 7 ปีที่แล้ว

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

    • @ANTGPRO
      @ANTGPRO  7 ปีที่แล้ว

      Пожалуйста) Рад что все понятно.

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

    автор талантлив не только как программист, но и как дизайнер:) отдельный лайк за заставку:)

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Haji Haydarov Спасибо ))

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

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

  • @michaelmuller8998
    @michaelmuller8998 9 ปีที่แล้ว +17

    // Хорошо объясняеш, за такие уроки охото заплатить!

    • @АркадийВяземский-ш3б
      @АркадийВяземский-ш3б 7 ปีที่แล้ว +6

      держи Ь

    • @Voiaka
      @Voiaka 5 ปีที่แล้ว

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

  • @senpaisenin9186
    @senpaisenin9186 5 ปีที่แล้ว

    Gena, спасибо тебе большое и за этот канал, заработаю денег куплю курс для тех кто чуть больше знает

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

    Hello from Korea, Спасибо! Объяснения супер!

  • @freedomfirevita3423
    @freedomfirevita3423 5 ปีที่แล้ว

    Очень благодарен Каналу очень чётко и ясно. Хотя я учусь в универе на инженер программиста но так как здесь не объясняют просто говорят бери методичку и работай как что где не понятно.👍 Молодец.

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

    Шикарные курсы! Все ясно и понятно! Жду не дождусь массивы)

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

    Спасибо за курс! Пожалуйста, продолжай снимать уроки!

  • @ДмитрийПустовойтенко-ъ2ъ
    @ДмитрийПустовойтенко-ъ2ъ 9 ปีที่แล้ว +4

    Действительно подход крутой! В плане объяснения у тебя талант! Ждем продвинутых курсов, где будет действительно крутое программирование!

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

      +Дмитрий Пустовойтенко Спасибо!)) Да, в продвинутом будет много практики.

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

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

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      константин корелов Спасибо большое!

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Pirotexnik 7 скоро ))

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Pirotexnik 7 Май ))

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

    Все просто супер! Продолжай в том же духе!

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

      Bober Спасибо! ))

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

    Спасибо, урок очень понятный. Указатели это то на чем я споткнулся, когда читал учебник, а тут все понятнее не куда, да и любой момент можно всегда пересмотреть. СПАСИБО.

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

      Пожалуйста ))

  • @ВладимирКарпович-и7и
    @ВладимирКарпович-и7и 9 ปีที่แล้ว +9

    Дорогой Gena ANTG! Спасибо за начальный (вводный) курс программирования на Си! Было очень интересно, было познавательно и поучительно. Очень жаль, что не видно продолжения дальнейшего обучения. А ведь Вы говорили, что затем будут темы массивов и строк. Если продолжение следует, то пишите. А пока придется приступить к штудированию языка по учебникам. Это не составит огромного труда (я когда-то учил и язык VB и Asm). Но подобные лекции лучше способствуют усвоению материала. Еще раз огромное спасибо за начальный толчок в изучении языка программирования Си!

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

    Молодец. Столько терпения все это разжёвывать!...

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

    Очень жду) Объяснения на высшем уровне !!! +

  • @ларисашишкина-ю5у
    @ларисашишкина-ю5у 7 ปีที่แล้ว

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

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

    хахаха "Я буду повторять пока вы не устанете..." Меня на этом моменте прорвало )))). Молодец автор, так и нужно объяснять программирование с нуля, потому что вроде кажется что все понял с первого раза, садишься сам писать, и по любому начинаются проблемы! Держи пять! Считаю, что эти курсы - отличная база, перед тем, как садиться читать серьезную литературу.

    • @ANTGPRO
      @ANTGPRO  7 ปีที่แล้ว

      Спасибо! ))

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

    Спасибо тебе большое. Очень хорошо всё объяснил, я наконец то всё понял)))

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      Пожалуйста ))

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

    Чувак ну не пропадай!

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

      я тут и работаю над контентом )

  • @Просточеловек-э6ы
    @Просточеловек-э6ы ปีที่แล้ว +1

    Спасибо! Хорошо объяснил

  • @eugeniuszmowlewicz1650
    @eugeniuszmowlewicz1650 9 ปีที่แล้ว

    Доброго времени суток, уроки действительно интересные, хорошо раскрывается теория. иногда даже в ВУЗах упускают некоторые важные моменты о которых говорит автор, радует, что столько повторения.
    Для новичков теории очень много(для самоучек), но для тех кто уже учится где-то не хватает практики, каких-то конкретных задач, чтобы не просто закрепить теорию, а по максимуму в неё вникнуть, каких-то нестандартных заданий возможно, более мудрёных что-ль, может целый урок посвятить всяким задачкам, этого не хватает...

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

    спасибо Гена за видео! я сегодня единственная в группе сделала задание правильно и это только благодаря тебе :)

  • @alexanderandrievski941
    @alexanderandrievski941 9 ปีที่แล้ว +23

    Кто жалуется на повторение материала, просьба сходите на курсы по языку Си, там никто с вами возиться не будет.
    Что то не понял?? Расберешься дома!!! xDD

  • @ilonabezukladnikova2164
    @ilonabezukladnikova2164 9 ปีที่แล้ว

    Спасибо большое! Жду продолжения!)

  • @ТахирМамедов-о2э
    @ТахирМамедов-о2э 7 ปีที่แล้ว +1

    super lessons! thank you very much indeed!

  • @АннаМакарова-п4с
    @АннаМакарова-п4с 8 ปีที่แล้ว

    прослушав на второй раз все поняла! супер!!!!

  • @Sasha2dx
    @Sasha2dx 7 ปีที่แล้ว

    1:26:41 даже если в ячейке хранится мусор - адрес ячейки от этого не меняется, указатель в любом случае будет указывать на конкретную ячейку.

  • @Сергей-ж7г5и
    @Сергей-ж7г5и 8 ปีที่แล้ว +1

    Я железячник и про указатели и адреса памяти ОЗУ (RAM) мне несложно было понять . Спасибо за уроки , некоторые конечно неоправдано большие ,НО это даёт РЕАЛЬНОЕ ПОНИМАНИЕ темы , не все ведь изначально что то знают , и как говорится "ПОВТОРЕНИЕ - МАТЬ УЧЕНИЯ ."

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

    Крутой урок.Очень доступно!!!!!!

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

    Гена ты красава!!!

  • @АлександрГомон-к2н
    @АлександрГомон-к2н 7 ปีที่แล้ว +1

    Спасибо, очень доходчиво

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

    Когда будет продолжение ?

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

    27:46 Если переменная типа char, на которую ссылается указатель, хранит символ, то вовремя обявления указателя нужно добавлять unsigned?

    • @ANTGPRO
      @ANTGPRO  2 ปีที่แล้ว

      Приветствую! Нет.

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

    хорош! четко поясняешь... отметить могу одну особенность - повторяешь одно и то же несколько раз (кого то может задолбать .... но на самом деле работает! в бошку инфа так вбивается что до смери не забудишь))));)

  • @irinawong2579
    @irinawong2579 7 ปีที่แล้ว

    спасибо вам большое за уроки

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

    Знаете,все-таки было бы очень неплохо после каждого урока задавать какое-нибудь задание на отработку)

  • @ЮрийИванов-е9о3ы
    @ЮрийИванов-е9о3ы 9 ปีที่แล้ว +2

    Спасибо за уроки. Всё здорово. Уроки просто супер. Однако сложно обучаться когда уроки выходят с таким разрывом. Было бы здорово если бы уроки выходили чаще. Ещё раз спасибо.

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      +Юрий Иванов Вам спасибо!

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

    Когда будут новые видео?

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

    Когда будит новая серия

  • @dannykogan7009
    @dannykogan7009 7 ปีที่แล้ว

    pointers are not easy to understand, many teachers fail to explain this subject correctly.
    but i must admit ,your explanation is very good, very detailed. I study computer science in college and i wish we had a teacher who explains C like you do.
    Keep up the good work man!
    I just got +1 subscriber! =)

    • @dannykogan7009
      @dannykogan7009 7 ปีที่แล้ว

      *you just got +1 subscriber..

  • @victormura.s
    @victormura.s 9 ปีที่แล้ว

    спасибо! очень хорошо объясняешь.

  • @СергейВасильев-ъ9ъ
    @СергейВасильев-ъ9ъ 7 ปีที่แล้ว +1

    Имеет ли смысл выражение &onePobyter ? Т.е. адрес ячейки памяти в которой хранится значение указателя. И надо ли обнулять значение &onePointer ли прежде чем вывести его на printf ?

    • @ANTGPRO
      @ANTGPRO  7 ปีที่แล้ว

      &onePointer был для простоты примера, смысла делать указатель на переменную нет, а вот на структуры, массивы и функции - да. Если ты его обнулишь, то и выводить будет нечего )

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

    Геннадий, спасибо! Никогда бы самостоятельно не начал с такого подхода который внушаете нам Вы!)
    Чертовски приятно осознавать что есть еще люди готовые так дотошно и доходчиво объяснять. У вас талант учителя.Никогда не предполагал что в 32 сяду за Си и буду получать удовольствие от его изучения))
    Пожалуйста, ответьте на два вопроса:
    1 ) Как скоро выйдут еще видео?
    2) Что точно можно читать и по чему учиться разрешается?
    ПС с нетерпением ждем и платных курсов.

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

    В свободном доступе нет отдельно презентации?

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      Нет, хотел загрузить, но потом забыл ))

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

    Вот теперь, наконец, понятно. Спасибо!

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

    Отличный урок

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

    Добрый день.
    Я занимаюсь по этим урокам в Visual Studio и возник следующий вопрос:
    Когда я вывожу через printf адреса ячеек &one, &two, &three - и использую %X, программа при каждой компиляции выводит новые значения и ругается, что бы %X заменили на %p.
    Вопрос в следующем, чем отличается %X от %p и почему при каждой новой компиляции выводятся новые адреса ячеек (раз они не зарезервированы в памяти до отключения программы)?

    • @ANTGPRO
      @ANTGPRO  4 ปีที่แล้ว

      В более старых версиях компилятора не было спецификатора %p, он предназначен для вывода адресов, %X - выводит данные в шестнадцатиричном формате. Для вывода адресов используйте %p.

    • @alexkabachenko724
      @alexkabachenko724 4 ปีที่แล้ว

      @@ANTGPRO Понял, благодарю.

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

    Добрый день,
    Гена, можешь пожалуйста подсказать среду разработки для линукс, о которой ты упоминал?

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      +Daniel Komnin Тут на выбор: можно Dev++, CodeBlocks, даже VisualStudio уже работает под Linux:
      www.visualstudio.com/products/code-vs

  • @ОлегЯ-б1ж
    @ОлегЯ-б1ж 8 ปีที่แล้ว +1

    Спасибо!!! Есть проблемка под WIN все работает под LINUX выдает ошибку warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘char *’ [-Wformat=]
    printf("%cOne adress: 0x%X%c", EOL, onePointer, EOL); где ошибка???

    • @МихаилСнопиков
      @МихаилСнопиков 8 ปีที่แล้ว +1

      У меня тоже самое получается(( но если вместо %X написать %p, то компилятор не ругается, но выводит адрес ячейки немного по-другому.
      Код пишу в Ubuntu

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

      Используйте %p.

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

    Не получается адрес вывести на экран MAC OS в чем проблема:? вот ошибка warning: format specifies type 'unsigned int' but the argument has type 'char *'
    [-Wformat]
    printf("%cOne adress: 0x%X%c",EOL, onePointer, EOL);
    но если вместо %X поставить %P адрес выводит, но каждый раз разный ...

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      +Nick S %x - формат для шестнадцатиричных чисел, а %p - для адресов памяти, адреса могут меняться после компиляции програмы(одни освобождаются, другие занимаются под процессы и т.д). Вы все правильно делаете.

  • @ОМЕЛЬЧУКВЛАДИСЛАВВАСИЛЬОВИЧ

    *Чувак спасибо большое ти очень круто об*яснилл
    БРО КРАСАВА*

    • @ANTGPRO
      @ANTGPRO  3 ปีที่แล้ว

      Спасибо!)

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

    Гена, поясни пожалуйста, почему при работе с командной строкой, и компилятором на винде , при выводе *указателя, можно указывать маркер %Х или %Х0, или %d, а убунту выдаёт ошибку с теми же маркерами, и только допускается маркер %p. Получается, на убунту всё строже, соответственно сложнее работать... Думал наоборот. Или дело в стандартах? Запутался. Спасибо.

    • @ANTGPRO
      @ANTGPRO  4 ปีที่แล้ว

      Приветствую! Дело в версии компилятора и стандартах языка Си по-умолчанию. Просто проверьте версию компилятора на Windows и Ubuntu. И используйте флаг -std=c99 во время компиляции. Вместо c99 могут быть, c89(ansi c), c11, c18

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

      @@ANTGPRO Спасибо. Версии компилятора сверил. Они идентичны. А с флагом -std=c99 не разобрался. На каком именно этапе или в какой последовательности его вписывать при компиляции в командную строку?

    • @ANTGPRO
      @ANTGPRO  4 ปีที่แล้ว

      @@rickrick2909 gcc app.c -o app.exe -std=c18 -Wall -Wextra -Wpedantic, и для вывода адресов используйте %p, %x и %X - отвечают за вывод чисел в 16-ричном формате. Раньше флага %p не было, поэтому использовали %x.

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

      @@ANTGPRO Всё понятно! Благодарю за обратную связь! Продвигаюсь к платному курсу.

  • @ТаримЗиямов
    @ТаримЗиямов 4 ปีที่แล้ว +2

    Если мы создаем 500 переменных , то нужно создавать и 500 указателей для их хранения. То есть , в любом случае в 2 раза переполняем память , разве нет ?

    • @ANTGPRO
      @ANTGPRO  4 ปีที่แล้ว

      Привествую! В этом видео переменные используются для простоты примера. Делать указатель на переменную смысла нет.

    • @ТаримЗиямов
      @ТаримЗиямов 4 ปีที่แล้ว +1

      @@ANTGPRO Понял, спасибо за ответ! Как я понял , полезность указателя проявляется при работе с большими объёмами данных.

    • @ANTGPRO
      @ANTGPRO  4 ปีที่แล้ว

      @@ТаримЗиямов Именно. Чтобы не копировать большие блоки памяти, мы можем просто сослаться на начало блока с помощью указателя.

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

    Гена, спасибо за видео!!
    Будет продолжение курсов?

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

      Stas Zzz Будет ))

    • @ubelian
      @ubelian 9 ปีที่แล้ว

      Gena ANTG ПРивет, у меня вопрос есть. Есть строка stroka[8]. В ней записаны лат буквы, наприпер 'asdasdb'. Мне нужно превратить букву 'b' в букву 'c'. Как это сделать? Мне нужно написать программу которая будет подбирать пароли. Мне удалось выяснить с помощью команды char() код той или иной буквы, но не получается заменить их. Как это сделать?

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Иван Носков тебе нужно найти позицию этой буквы в массиве, и затем заменить на новую: stroka[n] = 'c', где n - позиция буквы b.

    • @ubelian
      @ubelian 9 ปีที่แล้ว

      Gena ANTG Это не то немного. Мне нужно подбирать буквы.

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Иван Носков Зачем тебе заменять буквы в строке при подборе? Создай новый массив и клади туда совпавшие буквы. А проход делай по алфавиту. Думай. Подсказку я тебе дал. Только если пароль будет захэширован, тебе такой метод ничего не даст. Нужно знать каким алгоритмом захэширован пароль. И начинать перебор, постоянно прогоняя измененную строку через хэш-алгоритм.

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

    Гена. Спасибо огромное за уроки по Си. Очень хорошо всё объяснено, хоть и с излишними повторами, но зато понятно.
    Однако у меня есть пара вопросов по этому видео:
    В одном из предыдущих видео ты говорил, что переход на след строку под управлением Windows правильнее осуществлять "
    ", однако в этом видео переходишь символом '
    '. Объясни пожалуйста почему так.
    И правильно ли я понял, что объявление константы '
    ' в данном случае немного экономит ОП (Однако писать приходится больше, что в свою очередь увеличивает размер самой программы)?

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

      +Олег Леонтьев для windows привльнее
      . Но как видите, проблем в данном случае нет. А когда они возникут, вы будете знать, как написать более грамотно и это спасет ситуацию. Константа для примера, в данном случае можно было написать просто
      . А так, да, вы все верно описали и правильно поняли.

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

      +Gena ANTG Спасибо огромное за ответ. С нетерпением жду следующих уроков.

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

    через слайды информация туго заходит))))
    они нужны, но время как то надо сократить

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

      +CbIPHuK tut Решил пока отказаться от них )

  • @irena5279
    @irena5279 8 ปีที่แล้ว

    Доброго времени суток. Такой вопрос под Win работает но под Linux выдает ошибку
    16.c: In function ‘main’:
    16.c:33:11: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘char *’ [-Wformat=]
    printf("%cOne adress: 0x%X%c", EOL, onePointer, EOL);

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      Добрый день! ) Используйте %p для вывода адреса.

  • @Ad-qo5fo
    @Ad-qo5fo 8 ปีที่แล้ว +1

    Гена, подскажи, плиз. Выходит такая ошибка(что-то с маркером %x):
    warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘char *’ [-Wformat=]
    printf("%c One address: 0x%x%c", EOL, onePointer, EOL);

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

      Та же проблема.Побробовал использовать %p,адрес вывело нормально, но почему не работает %x не знаю.Почитал материалы на эту тему и там для указателей рекомендуют использовать %p.

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      Используйте %p.

    • @Ad-qo5fo
      @Ad-qo5fo 8 ปีที่แล้ว +1

      спасибо

    • @Ad-qo5fo
      @Ad-qo5fo 8 ปีที่แล้ว +1

      спасибо

  • @othersidesss1
    @othersidesss1 9 ปีที่แล้ว +12

    Мне больше нравиться "старый" формат, сразу на коде..
    А когда ждать 15?

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

    Гена, спасибо за отличный урок!
    Я так понимаю что warnings в windows просто не отрабатывает при компиляции?
    Я на "Linux Mint 17 X86" получаю проcто море ворнингов когда следую пошагово за тобой :) (время на видео 1:16:00)
    Пример:
    /home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli.c: In function ‘main’:
    /home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli.c:23:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 2 has type ‘char *’ [-Wformat=]
    printf("One address: 0x%X%c", onePointer, EOL);
    ^
    /home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli.c:24:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 2 has type ‘char *’ [-Wformat=]
    printf("Two address: 0x%X%c", twoPointer, EOL);
    ^
    /home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli.c:25:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 2 has type ‘char *’ [-Wformat=]
    printf("Three address: 0x%X%c%c", threePointer, EOL, EOL);
    ^
    One variable: 1
    Two variable: 2
    Three variable: 3
    One address: 0xBF8920F1
    Two address: 0xBF8920F2
    Three address: 0xBF8920F3
    [Finished in 0.0s with exit code 27]
    [shell_cmd: gcc -std=c99 "/home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli.c" -o "/home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli" && "/home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG/ukazateli"]
    [dir: /home/ruslan/Dropbox/PROGRAMMING LANGUAGES/C/Learn with Gena ANTG]
    [path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
    Т.е. моему gcc не нравится ни void main ни char ))

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Ruslan Krucheniuk Да, все верно, MinGW по умолчанию не отрабатывает warnings. Это не критично сейчас. Я просто знакомлю начинающих с базой. Все будет четко, когда мы перейдем на семейство linux-систем.

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

    Гена где платные курсы??

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

      +Vardan Karapetyan В процессе )

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

    Супер ваши уроки отличные и доходчивые. Простите за мой вопрос а когда вы выпустите видеоурок про массивов. К сожалению завтра экзамен по програмировании. Было бы отлично если у вас был бы.

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      +Muhammadjon Tursunov По массивам есть вводный урок на канале. Скоро будут новые, возможно даже завтра.

    • @muhammadjontursunov5097
      @muhammadjontursunov5097 8 ปีที่แล้ว

      Эх жалко что не сегодня. Завтра будет поздно экзамен будет. А можете ли вы сегодня залить? Пожалуйста

  • @olegtalbonin9593
    @olegtalbonin9593 8 ปีที่แล้ว

    Спасибо, что тут скажешь. ждем продолжения.
    И на платные хочется записаться
    жду про масивы и строки...

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

    Настолько глубокое понимание синтаксиса языка и умение объяснить! Это стоит большого уважения! Скажите, а столько по времени вы учили, учите язык C. чтобы быть на таком уровне? И ещё вопрос, я изучаю язык C , я понимаю, что на это нужно много времени! Вопрос в том, как ещё уложится во времени, чтобы после изучить другие языки такие, как питон, не говоря уже про С++? На это же нужны годы и годы, чтобы полностью пропустить язык через себя! Как действовать, можете наметить хоть немного карту, кроме того, что нужно пройти ваши курсы!

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

      Приветствую! Да, нужны годы на то, чтобы стать специалистом. Сейчас я записываю платные курсы, которые помогут освоить профессию. Все заточено под практические задачи и реальные проекты. Можете посетить сайт: antg.pro, либо же освоить бесплатные уроки на канале. Желаю удачи!

  • @tatianas1633
    @tatianas1633 7 ปีที่แล้ว

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

  • @АлександрМирошник-о7ч
    @АлександрМирошник-о7ч 9 ปีที่แล้ว

    Спасибо за видео

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

    Ген, а через какую прогу ты презентацию лепил?

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

      Powerpoint

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      Слайды рисовал в фотошопе, а сама презентация powerpoint

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

    когда уже выйдут новые уроки!!!! я хочу больше знаний)

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Roman Bondarenko Сегодня, Рома ))

    • @soldierofpeace
      @soldierofpeace 9 ปีที่แล้ว

      Gena ANTG Так когда новый урок будет?))

  • @trashcan8770
    @trashcan8770 7 ปีที่แล้ว

    допустим мы создали переменную и назвали ее name. где в памяти хранятся эти четыре буквы? или компилятор их сразу заменяет на адрес из цифр?

    • @ANTGPRO
      @ANTGPRO  7 ปีที่แล้ว

      Для компьютера все это - цифры.

  • @Walter_Kovacs
    @Walter_Kovacs 5 ปีที่แล้ว

    Вместо того, что получилось на 1:12:50, вышло почему-то:
    One variable: 1
    Two variable: 2
    Three variable: 10
    После последней строки переноса не произошло. Это на виндовс 10 домашняя, x64.
    А когда добавил строки для вывода адресов, то всё наладилось при выводе.

  • @denver1037
    @denver1037 7 ปีที่แล้ว

    Вопрос:
    т.е. если я задаю значение переменной один раз, например
    short one = 1;
    short two = 2;
    short three = 3;
    под это выделяется память,
    а потом, мне нужно поменять эти значения, например на
    one = 11;
    two = 22;
    three = 33;
    то под это выделяется новая ячейка памяти, при том, что старая хранит еще первые значения и таким образом тратятся доп ресурсы комп, я правильно понимаю? Поэтому гораздо удобней переназначать переменные через указатели? Потому что он как бы затирает предыдущие значения и вписывает туда новые?

  • @АлександрК-ш
    @АлександрК-ш 4 ปีที่แล้ว +1

    Здравствуйте. Нет ли исходного кода к вашим урокам?

    • @ANTGPRO
      @ANTGPRO  4 ปีที่แล้ว

      Здравствуйте! Можете посмотреть здесь: github.com/GenaANTG/C

    • @АлександрК-ш
      @АлександрК-ш 4 ปีที่แล้ว

      @@ANTGPRO Благодарю.

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

    посмотрел этот урок и у меня появился вопрос вот такова содержания.Если поинтер это переменная которая хранит в себе адрес другой переменно то кто хранит адрес поинтера и его переменной?

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      Адрес хранится в памяти. С помощью амперсанда ты можешь получить этот адрес, как было описано в видео. Сами адреса просто хранятся в памяти.

  • @РусланНовиков-о6в
    @РусланНовиков-о6в ปีที่แล้ว

    Здравствуйте, подскажите, пожалуйста, как выделяется память под массив указателей? Мы вводим кол-во элементов в массиве указателей( то есть количество указателей в массиве указателей) с клавиатуры. Тогда как выделяется память под массив указателей? Преподаватель сказал не использовать малок и калок и объяснить как в таком случае будет выделяться память. Заранее спасибо за ответ.
    ….
    int n;
    printf("enter n");
    scanf("%d",&n);
    char strings[100][100];
    char* array[n];

    printf("
    Rows to sort:
    ");
    for (int i = 0; i < n; i++) {
    printf("%d-> ", i + 1);
    scanf("%s", strings[i]);
    }

    for (int i = 0; i < n; i++) {
    array[i]=strings[i];
    }
    ….

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

    Геннадий, порекомендуйте пожалуйста книги по программированию. И спасибо что делаете такие легко усваиваемые уроки!)

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      +Vladimir Meisak И Вам спасибо!) По книгам чуть позже сделаю видео.

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

    Спасибо за уроки. Заметил такой момент - маркер %x у меня не сработал - терминал выдает ошибку. Нашел на stackoverflow.com ответ - использовать %p. Только в этом случае получил адреса (линукс минт 64)

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

    Гена, а не планируешь ли ты вести новомодные сейчас стримы?)
    Пишем код в прямом эфире, такая практика уже есть - в том числе и в обучающих целях)

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

      +dractw Думал об этом, я за )) но сначала запустим сайт ))
      Если делать стрим, то с донатом, моя такая позиция или по подписке. Еще обсудим на нашем сайте этот вопрос.

    • @мишаверижников-ф2ь
      @мишаверижников-ф2ь 8 ปีที่แล้ว

      +Gena ANTG как приобрести платный курс?

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      миша верижников я над ним работаю.

  • @АннаМакарова-п4с
    @АннаМакарова-п4с 8 ปีที่แล้ว

    Геннадий спасибо большое, за уроки просто супер! Хотела корректирующий вопрос задать по указателям, там где проходит разименование указателя oneResult = *onePointer, что здесь хранится значение или адрес в переменной oneResult?

    • @ANTGPRO
      @ANTGPRO  8 ปีที่แล้ว

      Пожалуйста! oneResult хранить ЗНАЧЕНИЕ по адресу на который ссылается onePointer.

  • @АндрейКулагин-щ9н
    @АндрейКулагин-щ9н 9 ปีที่แล้ว +1

    Очень хорошо объяснён материал , лучше уроков пока ещё нигде не встречал . Спасибо огромное ! Хотел спросить есть ли уже тесты по этому материалу , если есть , то где ? Очень хотелось бы проверить свои знания :)
    Ещё раз огромное спасибо и респект за проделанную вами работу!

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      +Андрей Кулагин Спасибо!

  • @Сергей_Сергей-ф4е
    @Сергей_Сергей-ф4е 9 ปีที่แล้ว +1

    Gena ANTG, привет! Как приобрести ваш продвинутый курс? Очень нравится, ваша подача! Спасибо! Как с вами связаться?

    • @ANTGPRO
      @ANTGPRO  9 ปีที่แล้ว

      +Сергей Рычков Спасибо большое! В процессе, работаю над ним.

  • @jvcr87
    @jvcr87 7 ปีที่แล้ว

    Автор, в этом и прошлом уроке с константами вы упустили момент, который меня заинтересовал. А именно определяя командой препроцессора константы, и объявляя указатель, который является так же обычной переменной, каким образом определяется их тип? ведь если предположить, что указатель принимает тот же тип, что и переменная char, то при объёме RAM более 255 ячеек, указатель уже не сможет корректно содержать адрес переменной. Спасибо.

  • @aliyabermaganbet4089
    @aliyabermaganbet4089 2 ปีที่แล้ว

    Добрый вечер! позвольте спросить, у меня при выведении адреса переменных, терминал выводит ошибку следующим образом : format specifies type 'unsigned int' but the argument
    has type 'char *' [-Wformat]
    printf("Two address: 0x%X%c", twoPointer, EOL);
    ~~ ^~~~~~~~~~
    %s
    Может это от того, что у меня типы данных главной функции int? Вместо char пробовала использовать unsigned int, но все равно ошибка;
    Может формат hexadecimal с printf на маке представляется по другому? я попробовала найти альтернативу X но что то везде пишут что будет X. Пробовала и s, но там терминал выводит только Ох и все

    • @ANTGPRO
      @ANTGPRO  2 ปีที่แล้ว

      Добрый вечер!
      Используйте %u или %p вместо %c.

    • @aliyabermaganbet4089
      @aliyabermaganbet4089 2 ปีที่แล้ว

      @@ANTGPRO спасибо! вместо Х использовала p, и получилось вот что:
      One address: 0x7ffeeba06b4b
      Two address: 0x7ffeeba06b4a
      Three address: 0x7ffeeba06b49
      это правильно?

    • @ANTGPRO
      @ANTGPRO  2 ปีที่แล้ว

      @@aliyabermaganbet4089 да)