Тёмный

Язык Си для начинающих / #8 - Указатели в Си 

Гоша Дударь
Подписаться 888 тыс.
Просмотров 106 тыс.
50% 1

Язык Си позволяет оптимизировать передачу различных данных в функции и объекты за счёт указателей. За урок мы научимся создавать, а также работать с указателями в языке Си.
1) Урок на сайте itProger: itproger.com/c...
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Группа FaceBook - goo.gl/XW0aaP
Инстаграм itProger: / itproger_official
Instagram: / gosha_dudar
Telegram: t.me/itProger_o...
Twitter - / goshadudar
- Уроки от #GoshaDudar 👨🏼‍💻
- Все уроки по хештегу #goshaLessons

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 77   
@Haidanweem
@Haidanweem 4 года назад
дано : квардат, а = 5, б = 7 :))))))
@Haidanweem
@Haidanweem 3 года назад
@@ПаблоМакедонский попробуй воспользоваться переводчиком. Может поможет :)))
@artemass9554
@artemass9554 Год назад
человек за 14 минут смог ясно объяснить то, что мой препод безуспешно пытался разжевать полтора часа на лекции, вот что значит талант)
@armorredRT
@armorredRT Год назад
Програмирование вообще намного лучше изучается самостоятельно. Я за недельку летом взял материал расчитаный на пол года (правда немного по другому языку брал, но основы везде почти одинаковые)
@artemass9554
@artemass9554 Год назад
@@armorredRT согласен с вами) очень жаль, что университетские дедлайны и работы по другии предметам не позволяют в полной мере погрузиться в программирование
@xrtcam2371
@xrtcam2371 6 месяцев назад
Автор не поримает что такое указатели и зачем они
@bootstrapers
@bootstrapers 3 года назад
Человек на видео рассказывает кромешную дичь: смешал в кучу все - указатели,адреса, хэш каким то боком у него оказался, язык си исполняется у него как скрипт и так далее.
@luden6794
@luden6794 2 года назад
аматор
@AntiBandera
@AntiBandera 2 года назад
про хеш меня тоже удивило ...чел походу вообще не понимает что такое хэш а что такое адрес памяти.
@ВасилийВетров-е9в
@@AntiBandera а что это такое?
@abbosbek7251
@abbosbek7251 23 дня назад
👍👍👍👍👍
@СветланаИванова-т8х8г
Спасибо, очень доходчиво, но конкретно в этом уроке не совсем поняла почему где-то & ставится а где-то * ?
@ohjelmistokehittaja4446
@ohjelmistokehittaja4446 3 года назад
Оператор взятия адреса, & , возвращает адрес его операнда. Оператор косвенного обращения, * , возвращает значение, на которое указывает переменная-указатель. (Это называют разыменованием указателя) Покурите пример - int main() { int num = 5; int *pi = # // присваиваем значение - адрес num printf("Address of num: %d Value: %d ",&num, num); printf("Address of pi: %d Value: %d ",&pi, pi); printf("The value pointed to by a pointer variable: %d ",*pi); /*Мы можем также использовать результат оператора разыменования как lvalue. Термин lvalue относится к операнду слева от оператора присваивания. Все lvalue должны иметь возможность изменения. Следующая строчка присвоит 777 переменной num, на которое указывает pi */ *pi = 777; printf("The new value of num: %d ",num); return 0; } Результат - Address of num: 2293324 Value: 5 Address of pi: 2293312 Value: 2293324 The value pointed to by a pointer variable: 5 The new value of num: 777
@mikhail8376
@mikhail8376 2 года назад
@@ohjelmistokehittaja4446 для адреса разве %d используют, а не %p? Если %p, то выдаёт Address of num: 004FF738 Value: 5 Address of pi: 004FF72C Value: 5240632 The value pointed to by a pointer variable: 5 The new value of num: 777
@ohjelmistokehittaja4446
@ohjelmistokehittaja4446 2 года назад
@@mikhail8376 используют то, что удобно. Понятно, что крутым погромистам видно сразу, что 5240632 равно 4FF738 и поэтому для них конечно ж надо православный %p.
@mksmvnv
@mksmvnv 11 месяцев назад
Сам все от и до проговорил, очень помогает объяснение самому себе. 1. Создал структуру под названием Скетч в которую входит две переменных, параметра (ширина и высота). 2. Создал объекты дом, гараж, офисное помещение и поместил их в функцию мейн. 3. Потом создал функцию подсчета площади помещения, указал параметр (любой объект из структуры Скетч), внес в функцию формулу расчета. 4. Потом в функции мейн вызывал функцию подсчета площади для разных объектов. 5. Ну и конечно же применил вызов объектов по адресу для ускорения работы программы. ** И как вы учили в прошлых занятиях, я разместил функцию расчета и структуру в головном файле и импортировал его в файл с функцией мейн. В общем еще раз спасибо за объяснение! Очень вам благодарен) Скоро еду на интенсив, в школу 21, а там все будет на Си)
@mixagid6933
@mixagid6933 4 года назад
Пока что не задумывался об изучении этого языка, но С++, С# и многие другие курсы(2d игра на unity) помогают мне узнать что-то новое. Спасибо большое за то, чем ты занимаешься
@sergiussakhagrigorev7724
@sergiussakhagrigorev7724 7 месяцев назад
епта все равно не осилил
@NazarTropanets
@NazarTropanets 4 года назад
можешь сделать урок по созданию плагинов, будь то для sublime text, visual studio code или атом
@xrtcam2371
@xrtcam2371 6 месяцев назад
Автор не поримает что такое указатели р зачем они
@dmitriyp7701
@dmitriyp7701 6 месяцев назад
Так сними видео, расскажи.
@armorredRT
@armorredRT Год назад
Спасибо, я всё думал, зачем присвоивать одному значению две переменные, а оказывается вот оно как
@nickjonas8257
@nickjonas8257 3 года назад
Никогда не думал, что скажу это. Но ты понятно обьясняешь.
@easystm6865
@easystm6865 4 года назад
Актуально для микроконтроллеров
@nikname9139
@nikname9139 5 месяцев назад
сложновато конечно на первый слух , но объясняет грамотно и поставленно
@velaq-tu5vq
@velaq-tu5vq 10 месяцев назад
Дякую, декілька статей читав, та й нічого не зрозумів. А тут одразу на початку відео дається відповідь для чого вказивники - для швидкості виконання.
@dennto9168
@dennto9168 10 месяцев назад
Ярлык тоже является по сути адресом? (Когда мы создаем на рабочем столе ярлык запуска приложения к примеру).
@СергейСорокин-е1с
@СергейСорокин-е1с 4 года назад
Очень годно, круто было бы, если бы в ближайших уроках объяснил, как работают списки
@djulustan7576
@djulustan7576 4 года назад
Все очень доходчиво объяснил, спасибо большое за контент! Было бы еще лучше показать начинающим реальные цифры ускорения выполнения кода. Например, как Вы уже сказали, с «большим» массивом
@thebuckzor688
@thebuckzor688 4 года назад
dotazaur массивы априори передаются по указателю.
@LLlblKAPHO
@LLlblKAPHO 2 года назад
да, был бы смысл сделать долгое вычисление и показать разницу в подходах.
@АлександрБ-ч8р
@АлександрБ-ч8р Год назад
Начинающим такие данные максимально бесполезно знать, т.к применяется только на высоких уровнях проги)
@fare28
@fare28 2 года назад
Все таки основная функция указателей это изменение исходной переменной.
@4life599
@4life599 3 года назад
Круто, классно и четко. На этапе указателей у меня всегда взрывался мозг! И книга летела в мусорку пинками от комнаты до самой дальней мусорки в городе. Указатели - это легко. Хорошо. У тебя двумерный массив. [0]=15, [1]=смотри в [0]. Зачем? Почему он быстрее? Почему не обратиться к значению а не адресу? Была одна строка с объявлением переменной, нет, лучше и легче если мы добавим ещё строчек кода для определения указателя. Создадим дополнительную переменную для хранения адреса. Для чего? Зачем было так долго рассказывать об объявлении переменных, использовать работу с ними если по факту ты сейчас сказал, что с ними работать нельзя, кроме как через указатели? И да, давай ещё добавим говна на вентилятор? Нате * и &.... Разбирайтесь!
@ПетрПетрошвиллер
@ПетрПетрошвиллер 3 года назад
чувак, я не гуру, но почитай про поток ввода. Указатель - морковка. Функция - осел. Намного легче нести с собой морковку, чтобы осел за ней бежал, чем хватать осла и нести. Результат хоть и одинаков, но энергозатраты во втором случае выше.
@androidpasha
@androidpasha 7 месяцев назад
Можно скинуть в мессенджер ссылку на этот видосик а можно и сам тяжёлый файл. А там по ситуации что лучше сам выбирай.
@FootballWorld-xw1rc
@FootballWorld-xw1rc 4 года назад
Гоша это лайки для тебя ты лучший программист
@andrewbpc
@andrewbpc 4 года назад
нет. Он просто копирует другие видосы. Ну как человек может знать все языки? он что только не пробовал. канал для получения денег, а не из-за идеи
@але-ь2ы
@але-ь2ы 4 года назад
@@andrewbpc бред за такие просмотры он нечего не получает, он знает много языков на уровне junior. видосы эти сделаны чтобы дать основу а потом уже сам идешь в глубину языка
@andrewbpc
@andrewbpc 4 года назад
@@але-ь2ы С чего ты взял? на его сайте полно рекламы. Ты говоришь, что он просто даёт базу. Но он просто копирует менее популярные каналы. Да и в видео реклама есть
@FootballWorld-xw1rc
@FootballWorld-xw1rc 4 года назад
Но он знает нормально
@majitaidarov2226
@majitaidarov2226 4 года назад
Я согласен с@@andrewbpc ом Гоша копируют все это все для деньги
@AntiBandera
@AntiBandera 2 года назад
это не хеш это просто адрес памяти !
@Justayoutuber-t1r
@Justayoutuber-t1r 8 месяцев назад
Можно спросить, не проще ли взять переменные и найти их произведение в следующей строке, чем разобрать на отдельные функций.
@androidpasha
@androidpasha 7 месяцев назад
Проще конечно. Простой пример для понимания. Представьте что у вас 100 массивов по 1000 значений(массив на 100 элементов, каждый из которых указатель на другой массив) и вам нужно знать к примеру максимальное значение каждого массива. Вот тут вы в цикле передаёте в функцию указатель на конкретный массив, функция новый массив не создаёт а работает с тем, адрес которого дали. Потом функция возвращает результат и так 100 раз.
@КириллГусарев-р5х
Мне одному кажется, что на 9:00 полный бред?)) printf("%d ", num); printf("%d ", *pNum);
@planetskaro3782
@planetskaro3782 Год назад
Нет, не бред.
@via1404
@via1404 3 года назад
Зачем объект в функции называть obj если его можно было назвать square ? Буду очень благодарна, если кто-то объяснит 😌 Как по мне, название obj только запутывает
@kadencode5347
@kadencode5347 2 года назад
obj - object
@АрсенОсипов-ж6щ
@АрсенОсипов-ж6щ 2 года назад
👍
@personamems
@personamems 4 года назад
А массивы уже передаются по значению?
@pinuxman802
@pinuxman802 4 года назад
массивы тоже можно тоже передать по ссылке главное помнить что указатель на массив это указатель на его 1 элемент
@thebuckzor688
@thebuckzor688 4 года назад
Pinux Man в C нет ссылок
@someone-rj5fm
@someone-rj5fm 3 года назад
согласен, Гоша сам не знает чему учит.
@umnikumnikov1338
@umnikumnikov1338 3 года назад
@@thebuckzor688 больше так никогда не говори
@PaullUniverse
@PaullUniverse Месяц назад
@@thebuckzor688 лол
@roblokot13
@roblokot13 9 месяцев назад
Классный квадрат с разными сторонами
@screenchat2275
@screenchat2275 5 месяцев назад
Классное знание английского (square это ещё площадь)
@roblokot13
@roblokot13 5 месяцев назад
@@screenchat2275 Да, но он это не уточнил, так что у меня полное право на этот комментарий
@i_exclus1ve_i563
@i_exclus1ve_i563 2 года назад
квадрат*??? а ничего чт у квадрата стороны равны ?????
@ВасилийВетров-е9в
душнила дэтэктэд
@XqzmePl1z
@XqzmePl1z Год назад
Душнила
@alex_ra.
@alex_ra. 10 месяцев назад
Помимо значения "квадрат" у слова square есть значение "площадь"
@naimjonyunusov4174
@naimjonyunusov4174 4 года назад
Чувак что бы знаешь про реверс инженеринге, как отслеживать https траффик, расскажи что нибудь?
@interesting4899
@interesting4899 2 года назад
Малвари писать хочешь Что-ли Xd)?
@namename2031
@namename2031 3 года назад
А можно использовать & отдельно для получения адреса переменной и называть это указателем?
@PaullUniverse
@PaullUniverse Месяц назад
нет.
@mathew9794
@mathew9794 3 года назад
супер
@DrLithium
@DrLithium 4 года назад
Можно было бы в цикле на 1'000 или 10'000 или 100'000 итераций, сравнить скорость отработки через аргумент или по его адресу. Было бы нагляднее!
@priminister5711
@priminister5711 4 года назад
В отладчике... А у него не висуал студия)
Далее