Программирование на Си. #16. Массивы. Часть 2.

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

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

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

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

  • @ДмитрийНормов-ю6ц
    @ДмитрийНормов-ю6ц 2 ปีที่แล้ว +2

    Гена, за количество повторов - тебе премия Оскар положена!!!
    Красава))) С такими повторами зритель запомнит по-любэ все тонкости)

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

      Спасибо)) тронут))

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

    Спасибо большое за уроки! Это огромнейший труд, тут не поспоришь. Качество подачи материала очень высокое. Именно Ваши уроки помогают расставить по местам многие вещи в голове.

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

      И Вам спасибо!)

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

    давным давно, листая пикабу, наткнулся на пост с вашими уроками и добавил в закладки. наконец-то нашел время. осилил за пару дней. считаю чудом, что смог заинтересоваться программированием в принципе. пару лет назад посмотрел "интересный" урок по конструктору игр "GameMaker" и понеслось. на первых порах долго не мог понять, что такое аргументы и как они работают. вроде читаешь русскую справку, перечитываешь, как не объясняй - понять ни черта не можешь. "АРГУМЕНТ" и все, или - функция "ВОЗВРАЩАЕТ" - куда\что\зачем возвращает????? в итоге додумался до всего сам, когда уже забросил это дело. если бы мне кто тогда популярно объяснил и повторил "repeat(100500)" раз одно и тоже... цены б ему не было. так что, спасибо вам! некоторым это очень необходимо.

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

      Спасибо!)) сейчас наполню канал ))

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

    Спасибо за видео. Мы тебя тоже любим ))
    Отдельное спасибо, что не холтуришь и не пытаешься по меньше объяснить лишь бы быстрей.
    От начала до конца, все разжевываешь.
    И не слушай тех, кто говорит: че ты так долго говоришь и объясняешь.
    Так говорят холтурщики, которым влом самим объяснять, а лишь быстро быстро показывают, ну типо запомнишь. Есть такие горе учителя.

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

      Спасибо! ))

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

      ))

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

    Ставлю палец вверх только за то что вышло новое видео.

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

    Хорошо рассказывает, Много моментов узких раскрыто и как ты это делаешь )) класс! В преподаватели идти или же консультировать за отдельные деньги !

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

    Кстати у кого в Windows не работает %zu , используйте %i. Должно заработать.
    Еще кстати у меня при использовании %p 0x у меня не выводится, а выводится следующее:
    [*] Array addressess:
    0: 0028FF24
    1: 0028FF28
    2: 0028FF2C
    3: 0028FF30
    Байт код когда открыл 2588 строк компилятор сделал, не как на видео 500 с чем-то. Видимо компилятор на линуксе более экономично работает.
    Адреса еще при повторном запуске программы вообще не меняются в Windows.
    Ну вот такие особенности работы программы на Windows 7 заметил. Интересно получилось)
    Спасибо большое за урок! Очень ценные знания)

  • @HelloWorld-nx5eu
    @HelloWorld-nx5eu 8 ปีที่แล้ว +1

    KRASAVCHIK, PRODOLZHAI!!!!!!
    SPASIBO TEBE ZA OPEN SOURCES!!!

  • @alexeis628
    @alexeis628 8 หลายเดือนก่อน

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

  • @user-qx9wo6ez4n
    @user-qx9wo6ez4n 8 ปีที่แล้ว +3

    Мы еще живы и ждём. Геныч не забивай пожалуйста.

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

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

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

      Здравствуйте, Роман! Спасибо за отзыв, очень приятно! Вот эта часть: th-cam.com/video/GaEeZ5F_KiI/w-d-xo.html

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

      @@ANTGPRO спасибо

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

    наконец то нормальный не бубнящий голос подписываемся

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

    спс Гена/ твои уроки в школе 42(Unit) очень помогают =) правда смотрим их в х1,5

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

      Очень рад ))

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

    выпускай побыстрее продвинутый курс,куплю сразу, в универ. объем нереальный, только твои видео помогают

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

    Привет. Почему данная функция "ShowArraySize" не выводит на экран правильный размер массива в байтах? И как это было бы правильно реализовать ?
    #include
    void ShowArraySize(int array[])
    {
    size_t a = sizeof array;
    printf("%zu
    ", a);
    printf("%zu
    ", sizeof array);
    }
    int main(void)
    {
    int price[4] = {10, 20, 30, 40};
    ShowArraySize(price);
    printf("%zu
    ", sizeof price);
    return 0;
    }

  • @nightwitch698
    @nightwitch698 4 หลายเดือนก่อน +1

    36:13 при компиляции с флагом -pedantic компилятор ругается :format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘float *’ Это нормально?

    • @ANTGPRO
      @ANTGPRO  4 หลายเดือนก่อน

      @@nightwitch698 Он говорит, что тип указателя не совпадает. Можно сделать cast: (void *)pointerName в месте его использования, короче говоря при выводе добавить скобки (void *) перед именем указателя.

    • @ANTGPRO
      @ANTGPRO  4 หลายเดือนก่อน

      @@nightwitch698 Раньше такого предупреждения/ошибки не было, она появилась в более новых версиях компилятора.

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

    34:32 тут же ошибка в 8 стрке. Должно быть int* onepointer = &one ,да?

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

      Там нет ошибки )

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

    Урааа, наверное, завтра родятся дети у амурских тигров и я найду второй носок :) Спасибо, Гена, что не забыл!

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

    Вопрос по поводу синтаксического сахара:
    Вы утверждаете, что запись типа array[10] будет работать медленнее чем *(array + 10). Я так понимаю приведение записи array[10] к *(array + 10) происходит на этапе компиляции, а не во время выполнения, и если так, то по скорости работы они должны быть абсолютно одинаковы.

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

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

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

    Ген, ты нереально крут, сегодня удивил препода записью *(array + 1)
    Спасибо тебе большое, но на самом деле, очень много повторяешь информацию, чтобы дошла до всех, я согласен, это нормально, но все же поменьше повторений))

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

      Спасибо! )) Хорошо))

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

    Основная проблема всех курсов по программированию -- отсутствие _творческих_ задач, которые бы заставляли искать решение самому. Ну или полная оторванность задач от реальности. Си, в сумме своей, изучают для микроконтроллеров и реализация задач, оторванных от инициализации и использования переферии (кольцевые буферы, обработка массивов/строк/произвольного структурированного объема данных, простейшие модели с возможностью реакции на входное воздействие, конечные автоматы) дали бы значительное ускорение обучению не языку как таковому, а его использованию. А если сможете показать, детально, с кучей шагов от планирования до реализации, написание, например, того же драйвера под линукс - вот это РЕАЛЬНО будет снос башки, ибо такой материал есть только на ангельском.

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

      Все верно, но это вводный курс, поэтому мы тут работаем с языком, будет продвинутый, там практическое программирование.

  • @РУССКИЙ-ц3т
    @РУССКИЙ-ц3т 8 ปีที่แล้ว

    на 23 минуте вы расcказываете про размер float
    я всё это делал на Windows
    size_t floatSize = sizeof(float);
    printf("
    Float Size: %zu butes
    ", floatSize);
    и в командной строке мне выдало
    Float Size: zu butes

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

      добавь флаг при компиляции: -std=c99, у тебя, видимо, 4ая версия gcc, там стандарт c89 и он не поддерживает %zu

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

    Все круто делай дальше

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

      Спасибо!

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

    Есть такой вопрос. Если пример из урока компилирую и запускаю на Linux то выводится адреса в 16 - ричном формате как и у автора и адреса меняются при перезапуске. Если то же делать под Windows то получается вот так:
    [*] Array Access:
    0: 0028ff24
    1: 0028ff28
    2: 0028ff2c
    3: 0028ff30
    [*] Array Access:
    0: 0028ff24
    1: 0028ff28
    2: 0028ff2c
    3: 0028ff30
    При этом адреса остаются те же при перезапуске программы.
    Пробовал добавлять вначале 0х и %X но это просто меняет вид записи, а статичность адресов при перезапуске так и остаётся.
    В чём тут разница? Компилирую с добавлением -std=c99 -Wall
    Спасибо.

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

      Все нормально. Windows выделила это пространство адресов так как у нее они свободны и система предоставляет их в пользование.

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

    Суть 40ка минут видео:
    Адресация в массиве бывает YourArray[0], а бывает *(YourArray+0).
    Передача массива в функцию YourFuncion(YourArray[ ])
    Указатель на элемент получают знаком амперсанда &YourArray[0]

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

      Не все так понимают, нужно объяснять.

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

      Вроде & даёт адрес переменной?

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

      Cobra Cyborg не только переменной: функции, структуры, массива, элемента массива, переменной и т.д

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

      Gena ANTG да, это оператор адреса. Позже у Эриксона вычитал про него.)

  • @ДмитроПерший
    @ДмитроПерший 8 ปีที่แล้ว +1

    Забегая немного в перёд, я так понимаю, что более сложные программы построены на принципе вложения тела программы в бесконечный цикл. Команды ввода-вывода отрабатываются через прерывания и выход из программы - это завершение бесконечного цикла и возврат функцией мейн нуля. Я прав или нет?

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

      Можно сказать и так )

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

    Ура... новые видео 👍 ツ

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

      Приятного просмотра! ))

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

    printf ("%10.2f
    ", *(prices + 0)); - почему вот так выводит значение находящееся по адресу, но если так же пытаться вывести адрес: printf ("%10.2f
    ", &(prices + 0)); то выводит ошибку. Но зато вот так выводит: printf ("0x%10.2x
    ", &prices[0]); Еще получается так что если выводя адресс вместо %x написать %f , то выводит не адрес, а значение по адресу...это конечно не столь важно, но любопытно же

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

    залей урок авторизации и регистрации и привязка почты!

  • @ДанилНарышкин
    @ДанилНарышкин 7 ปีที่แล้ว

    Почему после добавления функции showArrayAdressessByPointer программа не компелируется? пишет что то вроде: незадекларированна arrey

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

      В видео было название array, а у вас arrey )

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

    Ген, удели 3 минуты для урока установки тем, просто на примере этого урока, в будущем можно будет самому проделывать данные процессы

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

      Хорошо, сделаю.

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

    Не понимаю, а как компилятор понимает, что + 1 это сдвиг на 4 байта? prices возвращает адрес в нулевого элемента в шестнадцатеричной системе и прибавляет к этому адресу 1, но след. элемент находится на +4 байта. Каким образом мы переходим к след. элементу? Ведь не никаких особых подсказок для компилятора, что в контексте этой задачи, нам нужен сдвиг на один размер значения флоат.

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

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

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

      после окончания работы программы все данные уничтожаются(массивы переменные) и при запуске программы снова выделяются новые ячейки в памяти

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

    Гена , не знаю ответишь ты или нет) но все равно попытаюсь. Я дошла до моменты вывода адреса массива ( пишу в Windows), и у меня компилятор выводит вот в таком виде
    0: 0061FF04
    1: 0061FF08
    2: 0061FF0C
    3: 0061FF10
    я несколько раз выводила и всегда выходят одни и те же цифры , и концовка не такая как у тебя. Почему так? интересно

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

      Да потому что это адрес. У тебя с ним тоже одинаковый домашний адрес? Так же само и с компьютером)

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

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

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

      Gena ANTG спасибоо)

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

    what's the name of the ubuntu theme in the video ?

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

      Theme: (Arc Theme): github.com/horst3180/arc-theme
      Icons: (Numix): www.ubuntumaniac.com/2016/04/install-numix-circle-icon-theme-on.html
      Sublime Theme: github.com/equinusocio/material-theme

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

      thanks a lot dude :)

  • @ПроОрп-з3г
    @ПроОрп-з3г 8 ปีที่แล้ว

    Привет Геннадий, прошу отнестись к моему вопросу адекватно. Будет ли видео о вводе информации на экран, если да, то когда(приблизительно)? Заранее спасибо!

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

      Привет! Выводе на экран? Что именно вас интересует?

    • @ПроОрп-з3г
      @ПроОрп-з3г 8 ปีที่แล้ว

      +Gena ANTG как бы вам сказать? Ну вот например в Паскале это readln

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

      Про Орп ааа, понял, как раз следующий урок об этом будет )

    • @ПроОрп-з3г
      @ПроОрп-з3г 8 ปีที่แล้ว +1

      +Gena ANTG Понял, спасибо!

  • @ДенисДубровин-ш3р
    @ДенисДубровин-ш3р 8 ปีที่แล้ว

    Продолжил компилировать на windows7. При значении в исходном %zu выводилось в работе проги: "zu". Заменил на %u - стало выводиться правильное число в байтах: "4" (для float). С99, компилятор тот же. От чего это зависит? Заранее благодарен за ответ!

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

      Добавь флаг -std=c99 при компиляции, у тебя MinGW 4 версии, я думаю, и все будет отлично

  • @МихаилИванов-ф8ч
    @МихаилИванов-ф8ч 4 ปีที่แล้ว +1

    Привет!
    Если ввести
    size_t PricesSize = sizeof (prices);
    printf("
    Prices Size: %zu bytes
    ", sizeof (PricesSize));
    то выдает 8 байт вместо 16-ти,
    а если убрать sizeof из строки вывода, то ставит 16 байт.
    Почему так, объяснишь?

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

      Привет! Дело в том, что ты два раза делаешь sizeof - первый раз для массива, а второй - для переменной типа size_t. Само собой у них разные размеры)

    • @МихаилИванов-ф8ч
      @МихаилИванов-ф8ч 4 ปีที่แล้ว +1

      @@ANTGPRO спасибо

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

    Уже все понятно :)
    Для сортировки массива городов надо было создать дополнительный масив а не переменню.

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

      В подсказках ведь написал )

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

    Вопрос может немного не по теме, но хотелось бы получить ответ.
    Когда данные вводятся с какого - либо устройства, то они ведь тоже работают через оперативную память и каждому устройству выделяются ячейки памяти? Если это так, то где можно найти имена ячеек памяти,которые выделяются устройству и можно ли декодировать информацию, записанную на них?

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

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

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

      Медленне не будет, это компилируемый код, я просто работал на момент записи с интерпретируемыми языками и почему-то решил сказать об этом. А в целом, когда мы имеем дело с "синтаксическим сахаром" , то мы имеем дело с конверсией к исходному виду кода, который могли бы использовать напрямую. Но это не всегда медленнее. А по поводу скоростей, нужно замерять.

  • @АндрейВоробей-э7ч
    @АндрейВоробей-э7ч 8 ปีที่แล้ว

    Привет, а где можно узнать про твой сайт и продвинутый курс?

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

      Привет! Вся информация будет здесь.

  • @БогданДрогомирецький-м5м
    @БогданДрогомирецький-м5м 8 ปีที่แล้ว

    Как пользоватся using namespace std; ?

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

      В Си нет пространства имен, это в С++.

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

    Лайки ставить не забывайте !

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

    Такс такс такс, я жду продвинутый платный и сайт до си пор... Пока нет примерных сроков?

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

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

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

    gena у меня тоже пишет Float Size: zu bytes как понять с флагом что это такое

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

      при компиляции нужно добавить флаг -std=c99: gcc name.c -o name -std=c99

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

      когда сайт запустишь?)

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

      Как только разберусь с работой. Сейчас сложный период.

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

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

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

      Да, я говорил про скорость в плане того, что лишней работы не происходит, не происходит неявного кастинга. В процессе работы, это не повлияет )

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

    Относительно Lesson16/exercise
    + Есть функция, которая принимает два массива на вход, и выводит данные в виде таблицы.
    - Написать функцию, которая принимает два массива на вход, и выводит отсортированную таблицу городов в порядке убывания населения.
    Тут проблема
    Население отсортировать в масиве не проблема.
    Не получается привязать города . ... Помогите Gena ANTG !!!

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

      Привязку надо делать по индексу ) Во время прохода элменеты массивы с населением меняют свое положение в массиве и изменяют свой порядковый индекс. То есть, массив городов уже не нужно сортировать, соритурем какой-нибудь один массив, запоминаем индексы, тут нужно подумать как это оформить, подсказу я вам дал )

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

    Добрый вечер Гена! Во первых огромное спасибо за урок! Есть вопрос по поводу кода. Пишу на windows. Через маркер %zu не выводятся данные о байтах, а вот через маркер %i да. Можешь объяснить пожалуйста почему так?

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

      Приветствую! У тебя скорее всего 4ая версия gcc, по-умолчанию он использует стандарт c89, а %zu из c99.
      При компиляции просто добавь флаг --std=c99 и всегда компилируй с этим флагом.

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

      Спасибо большое Гена, только вот версия gcc у меня 5.3.0 :)))

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

      Dereh Haim так работает?))

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

      Да, если добавляю --std=c99 то все прекрасно работает... Странно это все конечно.

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

      Dereh Haim Каждый стандарт вносит свои фишки, ничего странного нет.

  • @ВотКак-к6и
    @ВотКак-к6и 8 ปีที่แล้ว

    Привет, у меня такой вопрос.
    маркер %zu в командной сторке отображается "Float size zu bytes" и все остальные типы также.
    Вместо маркера %zu я поставил %u, И все нормально выводит. У меня Виндовс 7 64 бит. gcc 4.9.3.
    Подскажи в чем проблема скрывается.

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

      не понял: маркер %zu в командной сторке отображается "Float size zu bytes" и все остальные типы также.

    • @ВотКак-к6и
      @ВотКак-к6и 8 ปีที่แล้ว

      код printf("
      Float Size: %zu bytes
      ", floatSize); Выводит Float size: zu bytes
      а код printf("
      Float Size: %u bytes
      ", floatSize); Выводит Float size: 4 bytes

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

      Евгений Евменков при компиляции, в конце, добавь флаг -std=c99, у тебя скорее всего 4ая версия gcc.

    • @ВотКак-к6и
      @ВотКак-к6и 8 ปีที่แล้ว +1

      спасибо помогло, я и думал что дело в версии компилятора. И ты говорил об этом когда переходили на .Линукс, что могут быть проблемы с компиляцией.

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

    спасибо огромное за ответ и вот что у меня получилось neme-std=c99.exe или neme.exe итак итак хотя все добавилось ( neme-std=c99.exe) не является внутренней или внешней командой исполняемой командой или пакетным файлом

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

      через пробел -std=c99: gcc name.c -o name -std=c99

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

      о другое дело от души за ответы с искренним уважением

  • @Анатолий-д6л1к
    @Анатолий-д6л1к 8 ปีที่แล้ว +1

    Гена, рад новому уроку ) Какая цена вопроса кстати продвинутого курса?

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

      склоняюсь к 77$

    • @Анатолий-д6л1к
      @Анатолий-д6л1к 8 ปีที่แล้ว +2

      Думаю такой курс стоит своих денег однозначно )

  • @РУССКИЙ-ц3т
    @РУССКИЙ-ц3т 8 ปีที่แล้ว

    У МЕНЯ 2 ВОПРОС
    ТЫ ДЕЛАЕШ СВОЙ САЙТ
    КАК ТЫ ЕГО СОЗДАЛ?
    И КАКИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ НУЖНЫ ЧТОБЫ СОЗДАТЬ САЙТ?

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

      php, java, python, ruby - их куча.

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

    Гена, как называется тема которая у тебя в Linux установлена?

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

    я уже 3 раза пересмотрл масивьі но не слова там не нашшол от том как создать Массив с именами городов. ето в твоих упражнениях я искал ето в интернете и нечего толкового не нашел подскажи как ето сделать?????я нашол только как ето сделать если есть один город но не 9 штук char city[] = {"New-York", "London" "Minsk", "Kuiv", "Warsaw", "Berlin", "Tokio", "Honk-Kong", "Moscow"}; и как нужно здавать printf в таком случае...Подскажи пожалуйста???

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

      Ты написал массив с 9 городами, но так как строка это массив символов, у нас получается массив из строк (массив из массивов), тебе нужно добавить еще одну пару скобок в имени city: char city[][20] = { ... }, где 20 - это максимальная длина строки для названия города. Кстати, на начальном этапе все таки лучше писать кол-во элементов в массиве: char city[9][20] = { ... };

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

      ааа получилось я 3 дня пьітался ето сделать и реально получилось тьі лучшуй!!!!!!!

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

    где конкретно флаг добавлять опиши поподробней плиз что такое флаг это галочка что ли а с u работает

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

      флаг это дополнительный параметр после имени программы, обычно выглядит так: --flag, -f
      Добавить нужно -std=c99 при компиляции: gcc name.c -o name -std=c99

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

    Ну на конец то!!!

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

    Привет! В последней части урока при выводе адреса массива постоянно вылетает ошибка:
    error: format ‘%p’ expects argument of type ‘void *’, but argument 2 has type ‘float *’ [-Werror=format=]
    printf("0: %p
    ", &array[0]);
    Погуглил - нашел такое решение с заменой аргумента с float на void. Заработало. Но верно ли оно?:
    void showArrayAddresses(float array[])
    {
    printf("
    [*] Array Addresses:
    ");
    printf("0: %p
    ", (void*)&array[0]);
    printf("1: %p
    ", (void*)&array[1]);
    printf("2: %p
    ", (void*)&array[2]);
    printf("3: %p
    ", (void*)&array[3]);
    return;

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

      Приветствую, Михаил!) Да, такое решение вполне корректно.

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

      @@ANTGPRO Спасибо! Отличные уроки! Продвинутый курс все-таки уже вышел? Есть интерес.

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

      @@mikhailchunaev1138 Выйдет на следующей неделе. Будет очень много видео) Сейчас идет предзаказ, можете купить по сниженной цене, после выхода цена будет 9999 руб.

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

      Gena ANTG Заказ оплачен! Ждём!

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

      @@mikhailchunaev1138 Спасибо, Михаил! А мы работаем, чтобы не подвести Вас.

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

    А уже есть платный курс?

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

      Работаю над ним

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

    Какая стоимость платного курса?

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

      ~77$

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

    Что для меня непонятно, это многие слова,которые ты пишешь: какие из них по правилам,а какие из головы(придуманные).Вот и не знаю какие запоминать.

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

    Привет! А можно установить Sublime Theme бесплатно на Ubuntu 14.04 если есть такая возможность? И как это сделать?

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

      Бесплатная версия будет периодически просить купить лицензию. Можете скачать на официальном сайте.

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

    Уже 16 видео, и вы до сих пор не сказали, как вводить данные (Scanf).

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

      Когда будем проходить строки, зацепим его сразу же.

  • @РУССКИЙ-ц3т
    @РУССКИЙ-ц3т 8 ปีที่แล้ว

    char имеет от -128 до 127
    а float какие границы имеет

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

      Это можно узнать через константы. В уроках будет.

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

    На линукс перешел?)

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

      какие люди!)) уже очень давно )) я на нем сейчас только и работаю

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

    ты гений))

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

    у меня почему то первый с .. 0 .. 4 .. 8 почему так так и не понял)

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

    почему так не подробно???

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

      Что именно?

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

    Имя массива не есть указатель!

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

      Есть. Указатель на первый элемент массива. Нужно читать книги.

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

      Вот именно, что надо читать книги. У Гриффитсов хорошо по этому поводу написано. Во-первых, переменная массива не может указывать ни на что другое (под само имя память не выделяется, в отличии от указателя). Во-вторых адрес массива, это адрес массива (&array == array), что для указателей не так (&pointer != pointer). В-третьих, sizeof(array) - размер массива в байтах, а вот sizeof(pointer) - размер указателя. Но всё равно ваши видео хороши для начинающих =)

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

      Евгений Архипов Запись вида: &array == array это по-вашему что?)) Вы берете адрес и сравниваете его с именем массива. Это и есть указатель(имя массива равно его адресу, в вашем же примере). А те различия, что вы назвали, относятся к ТИПу. Тип указатель и тип массив - разные типы. Но механика в массивах реализована на указателях. Это не противоречит природе массива, так как любая структура в Си имеет адрес, а значит с ней можно работать через указатель. Ну а за благодарность, отдельное спасибо!))

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

      Указатель, это переменная, для хранения адреса. Имя массива, это НЕ указатель. Под указатель выделяется память, под имя массива память не выделяется. Вы в видео утверждаете, что имя массива, это указатель, что не верно.

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

      Евгений Архипов Причем здесь память? Дело в адресе ) Имя массива указывает на адрес его первого элемента. Имя указателя указывает тоже на адрес того, на что мы ссылаемся. А уже как компилятор выделяет память под эти типы - это его дело.
      Я могу создать массив, могу создать указатель на его первый элемент / могу на имя(это одно и то же), у них будут одинаковые адреса, это говорит о чем? Это говорит о том, что они указывают / ссылаются на один и тот же адрес. Плюс к этому, я могу работать с массивом с помощью указателей, и вообще не работать через квадратные скобки.
      Имя функции, имя массива - это указатели.

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

    сегодня четверг и за окном дождик (я не вру), это случилось!

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

      да )) приятного просмотра! ))

    • @АнтонБойко-у4у
      @АнтонБойко-у4у 8 ปีที่แล้ว +1

      у меня тоже дождь)(не шучу)

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

      А цену курса уже озвучивал где-то?

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

      Cobra Cyborg 77$, уже не раз ))

    • @АнтонБойко-у4у
      @АнтонБойко-у4у 8 ปีที่แล้ว

      +Gena ANTG Когда вернешься?

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

    Люблю массивы prices[a] == *(prices+a) == *(a+prices) == a[prices]

  • @НиколайПрибылов-е6ч
    @НиколайПрибылов-е6ч 8 ปีที่แล้ว +1

    Lesson 16
    #include
    #define n 9
    #define SIZE 9
    char * cities[]={"Moscow","New-York","London","Minsk",
    "Kiev","Warsaw","Berlin","Tokio","Hong-Kong"};
    int peoples [SIZE]={11503000,8406000,8674000,1893000,
    2804000,1711000,3502000,13610000,7188000};
    int *pmaxp[n], *pmaxc[n];
    //функция обмена адресами
    void obmen (int *a[n], int i, int j)
    {
    int *tmp;
    tmp=a[i];
    a[i]=a[j];
    a[j]=tmp;
    }
    void main(void)
    {
    int i,j
    for(i=0; i

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

      только написал бы swap уже)) а то все по-английски ))

  • @Федор-в1ц
    @Федор-в1ц 2 ปีที่แล้ว

    Почему у меня 1000 строк а у вас 500?😅

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

    21 минута где %zu у меня не работало, погуглил, %lu заработало.. хммм

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

      Добавь флаг -std=c99 при компиляции и все будет ок

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

      Gena ANTG спасибо!!

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

    задачки бы еще ты придумывал бы к урокам

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

      Скоро будет много нового )

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

    Запуталась на этом уроке (╥﹏╥)

    • @ҚасымСауыт
      @ҚасымСауыт 8 ปีที่แล้ว +1

      смотри еще 2-3 раза поможет )

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

      Что именно не понятно?

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

      Не сразу поняла, что ф-я ArrayAdressess явл-ся общей и не могла провести связь с массивом prices. Пересмотрев дошло.
      Но остался один вопрос по поводу вывода адресов в 16-й системе. У меня почему-то нулевой элемент оканчивается на буковку "с"-то есть на 12, это нормально?
      0: 0xbfcbf17c
      1: 0xbfcbf180
      2: 0xbfcbf184
      3: 0xbfcbf188

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

      Виктория М Что-то не так с выводом я думаю. Нужно видеть код.

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

      Проверяй через куркулятор, режим програмист. Всё правильно.

  • @АнтонБойко-у4у
    @АнтонБойко-у4у 8 ปีที่แล้ว

    Если будет время оцените решение задания github.com/BoykoAnton/C/blob/master/EXarrays.c

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

      Присылайте свои решения задач, рассмотрим их в видео. Покажу, как можно улучшить код. А так, Антон, ты молодец!)) Будет больше решений рассмотрим их в видео.

    • @АнтонБойко-у4у
      @АнтонБойко-у4у 8 ปีที่แล้ว +1

      Gena ANTG Спасибо) есть небольшой опыт программирования на паскале, отсюда и си легче дается, особенно при помощи ваших уроков)

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

    Урааа, наверное, завтра родятся дети у амурских тигров и я найду второй носок :) Спасибо, Гена, что не забыл!