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

  Рет қаралды 101,721

Гоша Дударь

Гоша Дударь

4 жыл бұрын

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

Пікірлер: 74
@artemass9554
@artemass9554 Жыл бұрын
человек за 14 минут смог ясно объяснить то, что мой препод безуспешно пытался разжевать полтора часа на лекции, вот что значит талант)
@armorredRT
@armorredRT Жыл бұрын
Програмирование вообще намного лучше изучается самостоятельно. Я за недельку летом взял материал расчитаный на пол года (правда немного по другому языку брал, но основы везде почти одинаковые)
@artemass9554
@artemass9554 Жыл бұрын
@@armorredRT согласен с вами) очень жаль, что университетские дедлайны и работы по другии предметам не позволяют в полной мере погрузиться в программирование
@xrtcam2371
@xrtcam2371 2 ай бұрын
Автор не поримает что такое указатели и зачем они
@mksmvnv
@mksmvnv 7 ай бұрын
Сам все от и до проговорил, очень помогает объяснение самому себе. 1. Создал структуру под названием Скетч в которую входит две переменных, параметра (ширина и высота). 2. Создал объекты дом, гараж, офисное помещение и поместил их в функцию мейн. 3. Потом создал функцию подсчета площади помещения, указал параметр (любой объект из структуры Скетч), внес в функцию формулу расчета. 4. Потом в функции мейн вызывал функцию подсчета площади для разных объектов. 5. Ну и конечно же применил вызов объектов по адресу для ускорения работы программы. ** И как вы учили в прошлых занятиях, я разместил функцию расчета и структуру в головном файле и импортировал его в файл с функцией мейн. В общем еще раз спасибо за объяснение! Очень вам благодарен) Скоро еду на интенсив, в школу 21, а там все будет на Си)
@mixagid6933
@mixagid6933 4 жыл бұрын
Пока что не задумывался об изучении этого языка, но С++, С# и многие другие курсы(2d игра на unity) помогают мне узнать что-то новое. Спасибо большое за то, чем ты занимаешься
@Haidanweem
@Haidanweem 3 жыл бұрын
дано : квардат, а = 5, б = 7 :))))))
@Haidanweem
@Haidanweem 2 жыл бұрын
@@user-pd1ro8pc1i попробуй воспользоваться переводчиком. Может поможет :)))
@nickjonas8257
@nickjonas8257 3 жыл бұрын
Никогда не думал, что скажу это. Но ты понятно обьясняешь.
@armorredRT
@armorredRT Жыл бұрын
Спасибо, я всё думал, зачем присвоивать одному значению две переменные, а оказывается вот оно как
@user-pn7gq3gk1m
@user-pn7gq3gk1m 4 жыл бұрын
можешь сделать урок по созданию плагинов, будь то для sublime text, visual studio code или атом
@nikname9139
@nikname9139 Ай бұрын
сложновато конечно на первый слух , но объясняет грамотно и поставленно
@user-wc5yi6gv1k
@user-wc5yi6gv1k 4 жыл бұрын
Очень годно, круто было бы, если бы в ближайших уроках объяснил, как работают списки
@djulustan7576
@djulustan7576 4 жыл бұрын
Все очень доходчиво объяснил, спасибо большое за контент! Было бы еще лучше показать начинающим реальные цифры ускорения выполнения кода. Например, как Вы уже сказали, с «большим» массивом
@thebuckzor688
@thebuckzor688 3 жыл бұрын
dotazaur массивы априори передаются по указателю.
@LLlblKAPHO
@LLlblKAPHO Жыл бұрын
да, был бы смысл сделать долгое вычисление и показать разницу в подходах.
@user-lg6vr7ol1n
@user-lg6vr7ol1n 11 ай бұрын
Начинающим такие данные максимально бесполезно знать, т.к применяется только на высоких уровнях проги)
@mathew9794
@mathew9794 2 жыл бұрын
супер
@FootballWorld-xw1rc
@FootballWorld-xw1rc 4 жыл бұрын
Гоша это лайки для тебя ты лучший программист
@andrewbpc
@andrewbpc 4 жыл бұрын
нет. Он просто копирует другие видосы. Ну как человек может знать все языки? он что только не пробовал. канал для получения денег, а не из-за идеи
@user-jn3vm1rz4z
@user-jn3vm1rz4z 4 жыл бұрын
@@andrewbpc бред за такие просмотры он нечего не получает, он знает много языков на уровне junior. видосы эти сделаны чтобы дать основу а потом уже сам идешь в глубину языка
@andrewbpc
@andrewbpc 4 жыл бұрын
@@user-jn3vm1rz4z С чего ты взял? на его сайте полно рекламы. Ты говоришь, что он просто даёт базу. Но он просто копирует менее популярные каналы. Да и в видео реклама есть
@FootballWorld-xw1rc
@FootballWorld-xw1rc 4 жыл бұрын
Но он знает нормально
@majitaidarov2226
@majitaidarov2226 4 жыл бұрын
Я согласен с@@andrewbpc ом Гоша копируют все это все для деньги
@4life599
@4life599 3 жыл бұрын
Круто, классно и четко. На этапе указателей у меня всегда взрывался мозг! И книга летела в мусорку пинками от комнаты до самой дальней мусорки в городе. Указатели - это легко. Хорошо. У тебя двумерный массив. [0]=15, [1]=смотри в [0]. Зачем? Почему он быстрее? Почему не обратиться к значению а не адресу? Была одна строка с объявлением переменной, нет, лучше и легче если мы добавим ещё строчек кода для определения указателя. Создадим дополнительную переменную для хранения адреса. Для чего? Зачем было так долго рассказывать об объявлении переменных, использовать работу с ними если по факту ты сейчас сказал, что с ними работать нельзя, кроме как через указатели? И да, давай ещё добавим говна на вентилятор? Нате * и &.... Разбирайтесь!
@user-cr2kb4pr9x
@user-cr2kb4pr9x 3 жыл бұрын
чувак, я не гуру, но почитай про поток ввода. Указатель - морковка. Функция - осел. Намного легче нести с собой морковку, чтобы осел за ней бежал, чем хватать осла и нести. Результат хоть и одинаков, но энергозатраты во втором случае выше.
@androidpasha
@androidpasha 3 ай бұрын
Можно скинуть в мессенджер ссылку на этот видосик а можно и сам тяжёлый файл. А там по ситуации что лучше сам выбирай.
@namename2031
@namename2031 2 жыл бұрын
А можно использовать & отдельно для получения адреса переменной и называть это указателем?
@dennto9168
@dennto9168 6 ай бұрын
Ярлык тоже является по сути адресом? (Когда мы создаем на рабочем столе ярлык запуска приложения к примеру).
@user-li9uo7wu2x
@user-li9uo7wu2x 3 жыл бұрын
Спасибо, очень доходчиво, но конкретно в этом уроке не совсем поняла почему где-то & ставится а где-то * ?
@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.
@velaq-tu5vq
@velaq-tu5vq 6 ай бұрын
Дякую, декілька статей читав, та й нічого не зрозумів. А тут одразу на початку відео дається відповідь для чого вказивники - для швидкості виконання.
@user-xn8zi3re6i
@user-xn8zi3re6i 2 жыл бұрын
👍
@naimjonyunusov4174
@naimjonyunusov4174 4 жыл бұрын
Чувак что бы знаешь про реверс инженеринге, как отслеживать https траффик, расскажи что нибудь?
@interesting4899
@interesting4899 Жыл бұрын
Малвари писать хочешь Что-ли Xd)?
@DrLithium
@DrLithium 4 жыл бұрын
Можно было бы в цикле на 1'000 или 10'000 или 100'000 итераций, сравнить скорость отработки через аргумент или по его адресу. Было бы нагляднее!
@priminister5711
@priminister5711 4 жыл бұрын
В отладчике... А у него не висуал студия)
@fare28
@fare28 Жыл бұрын
Все таки основная функция указателей это изменение исходной переменной.
@user-rt5tx9zv1q
@user-rt5tx9zv1q 4 ай бұрын
Можно спросить, не проще ли взять переменные и найти их произведение в следующей строке, чем разобрать на отдельные функций.
@androidpasha
@androidpasha 3 ай бұрын
Проще конечно. Простой пример для понимания. Представьте что у вас 100 массивов по 1000 значений(массив на 100 элементов, каждый из которых указатель на другой массив) и вам нужно знать к примеру максимальное значение каждого массива. Вот тут вы в цикле передаёте в функцию указатель на конкретный массив, функция новый массив не создаёт а работает с тем, адрес которого дали. Потом функция возвращает результат и так 100 раз.
@easystm6865
@easystm6865 4 жыл бұрын
Актуально для микроконтроллеров
@via1404
@via1404 2 жыл бұрын
Зачем объект в функции называть obj если его можно было назвать square ? Буду очень благодарна, если кто-то объяснит 😌 Как по мне, название obj только запутывает
@kadencode5347
@kadencode5347 2 жыл бұрын
obj - object
@personamems
@personamems 4 жыл бұрын
А массивы уже передаются по значению?
@pinuxman802
@pinuxman802 4 жыл бұрын
массивы тоже можно тоже передать по ссылке главное помнить что указатель на массив это указатель на его 1 элемент
@thebuckzor688
@thebuckzor688 3 жыл бұрын
Pinux Man в C нет ссылок
@someone-rj5fm
@someone-rj5fm 3 жыл бұрын
согласен, Гоша сам не знает чему учит.
@umnikumnikov1338
@umnikumnikov1338 3 жыл бұрын
@@thebuckzor688 больше так никогда не говори
@roblokot13
@roblokot13 5 ай бұрын
Классный квадрат с разными сторонами
@screenchat2275
@screenchat2275 Ай бұрын
Классное знание английского (square это ещё площадь)
@roblokot13
@roblokot13 Ай бұрын
@@screenchat2275 Да, но он это не уточнил, так что у меня полное право на этот комментарий
@bootstrapers
@bootstrapers 3 жыл бұрын
Человек на видео рассказывает кромешную дичь: смешал в кучу все - указатели,адреса, хэш каким то боком у него оказался, язык си исполняется у него как скрипт и так далее.
@luden6794
@luden6794 2 жыл бұрын
аматор
@AntiBandera
@AntiBandera Жыл бұрын
про хеш меня тоже удивило ...чел походу вообще не понимает что такое хэш а что такое адрес памяти.
@user-sz2ng8yq3s
@user-sz2ng8yq3s Жыл бұрын
@@AntiBandera а что это такое?
@AntiBandera
@AntiBandera Жыл бұрын
это не хеш это просто адрес памяти !
@user-mm5ln4qh5q
@user-mm5ln4qh5q Жыл бұрын
Мне одному кажется, что на 9:00 полный бред?)) printf("%d ", num); printf("%d ", *pNum);
@planetskaro3782
@planetskaro3782 11 ай бұрын
Нет, не бред.
@i_exclus1ve_i563
@i_exclus1ve_i563 2 жыл бұрын
квадрат*??? а ничего чт у квадрата стороны равны ?????
@user-sz2ng8yq3s
@user-sz2ng8yq3s Жыл бұрын
душнила дэтэктэд
@XqzmePl1z
@XqzmePl1z Жыл бұрын
Душнила
@alex_ra.
@alex_ra. 6 ай бұрын
Помимо значения "квадрат" у слова square есть значение "площадь"
@sergiussakhagrigorev7724
@sergiussakhagrigorev7724 3 ай бұрын
епта все равно не осилил
@xrtcam2371
@xrtcam2371 2 ай бұрын
Автор не поримает что такое указатели р зачем они
@dmitriyp7701
@dmitriyp7701 2 ай бұрын
Так сними видео, расскажи.
Язык Си для начинающих / #9 - Работа с файлами
11:01
Адреса и указатели в Си. Адресная арифметика
27:47
Тимофей Хирьянов
Рет қаралды 159 М.
How I prepare to meet the brothers Mbappé.. 🙈 @KylianMbappe
00:17
Celine Dept
Рет қаралды 58 МЛН
100❤️
00:20
Nonomen ノノメン
Рет қаралды 52 МЛН
When someone reclines their seat ✈️
00:21
Adam W
Рет қаралды 18 МЛН
you will never ask about pointers again after watching this video
8:03
Low Level Learning
Рет қаралды 2 МЛН
Язык Си для начинающих / #6 - Функции в Си
20:09
Гоша Дударь
Рет қаралды 108 М.
Собеседование Junior C++
45:32
Ambushed Raccoon
Рет қаралды 98 М.
😱 Как стать программистом с нуля? Без курсов самому.
24:43
Хауди Хо™ - Просто о мире IT!
Рет қаралды 293 М.
Язык Си для начинающих / #7 - Структуры данных
10:02
How I prepare to meet the brothers Mbappé.. 🙈 @KylianMbappe
00:17
Celine Dept
Рет қаралды 58 МЛН