آموزش برنامه نویسی پیشرفته C: اشاره گر

Advanced C Programming: Pointers

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: نشانگرها، آدرس‌ها و تخصیص حافظه اصلی در C نشانگرها و آدرس‌ها غیرمستقیم و غیرمستقیم چندگانه نشانگرها و کست‌های عمومی تخصیص حافظه و تخصیص مجدد حساب اشاره‌گر لیست‌های پیوندی منفرد و دوگانه صف‌ها و پشته‌ها کپی عمیق و کم عمق خطاهای رایج اشاره گر پیش نیازها: باید حداقل اصول برنامه نویسی C

برای اینکه یک برنامه نویس خبره به زبان C باشید باید در استفاده از اشاره گرها تسلط داشته باشید. این دوره اشاره گرها را با عمق واقعی توضیح می دهد. متغیرهای اشاره گر، محاسبات اشاره گر، غیر جهت، تخصیص حافظه، نحوه ایجاد و نگهداری لیست های پیوندی و نحوه استفاده از نشانگرهای تابع را توضیح می دهد. در واقع، تا زمانی که این دوره را به پایان برسانید، نکات درونی را خواهید فهمید. شما متوجه خواهید شد که آنها چه هستند، چگونه کار می کنند و چگونه مطمئن شوید که برنامه های شما خراب نمی شوند!

این دوره برای مبتدیان نیست. این برنامه برای برنامه نویسانی است که قبلاً دانش کاری خوبی از برنامه نویسی C دارند و باید با به دست آوردن درک عمیق از اشاره گرها، گام بعدی را در تسلط بر C بردارند.

اگر با اشاره‌گرها مشکل داشته‌اید و نمی‌توانید دقیقاً بفهمید که تمام آن «نمودارهای پیکان» واقعاً به چه معنا هستند یا دقیقاً چه رابطه‌ای بین نشانگرها و آدرس‌ها وجود دارد، این دوره برای شما مناسب است. در مجموعه ای از درس های کوتاه و کاملاً هدفمند، همه چیز را در مورد: 

یاد خواهید گرفت
  • حافظه رایانه و نحوه دسترسی نشانگرها به آن
  • نحوه تخصیص حافظه
  • چرا کپی کردن داده ها با استفاده از نشانگرها می تواند باعث خطای برنامه شود
  • چرا برخی از اشاره گرها "عمومی" هستند
  • چه اتفاقی می‌افتد وقتی نشانگرها را به انواع خاصی «پخش» می‌کنید
  • نحوه ایجاد لیست های منفرد و دارای پیوند دوگانه
  • نحوه استفاده از پشته‌ها و صف‌ها
  • چگونه از نشت حافظه و سایر مشکلات رایج جلوگیری کنیم
  • ...و خیلی بیشتر.

کد منبع همه برنامه‌های نمونه ارائه شده است، بنابراین اگر نیاز دارید کد من را امتحان کنید، می‌توانید آن را بارگیری کرده و در C IDE یا ویرایشگر کد دلخواه خود اجرا کنید.


سرفصل ها و درس ها

مبانی اشاره گر Pointer Basics

  • نحوه استفاده از این دوره How to use this course

  • آرشیو کد منبع Source Code Archive

  • اشاره گر چیست؟ What is a pointer?

  • متغیرهای اشاره گر Pointer variables

  • غیر جهت Indirection

  • یادداشت های مطالعه - مرحله اول Study Notes – Step One

مبانی اشاره گر Pointer Basics

  • این دوره در مورد چیست؟ What is this course about?

  • این دوره در مورد چیست؟ What is this course about?

  • نحوه استفاده از این دوره How to use this course

  • یادداشت های دوره و سوالات متداول Course Notes and FAQ

  • یادداشت های دوره و سوالات متداول Course Notes and FAQ

  • آرشیو کد منبع Source Code Archive

  • اشاره گر چیست؟ What is a pointer?

  • متغیرهای اشاره گر Pointer variables

  • غیر جهت Indirection

  • مبانی اشاره گر Pointer Basics

  • مبانی اشاره گر Pointer Basics

  • یادداشت های مطالعه - مرحله اول Study Notes – Step One

آدرس ها و غیر جهت Addresses and Indirection

  • رابطه بین یک اشاره گر و یک آرایه (یا رشته) چیست؟ What is the relationship between a pointer and an array (or string)?

  • نحوه نمایش مقادیر اشاره گر How to display pointer values

  • تخصیص حافظه Allocating memory

  • رایگان free

  • تخصیص مجدد realloc

  • محاسبه شاخص آرایه Calculating an array index

  • تراز را روی مرزها تایپ کنید Type alignment on boundaries

  • تراز و محاسبات اشاره گر را تایپ کنید Type alignment and pointer arithmetic

  • اشکال زدایی چند جهت غیر مستقیم Debugging Multiple Indirection

  • یادداشت های مطالعه - مرحله دوم Study Notes – Step Two

آدرس ها و غیر جهت Addresses and Indirection

  • رابطه بین یک اشاره گر و یک آرایه (یا رشته) چیست؟ What is the relationship between a pointer and an array (or string)?

  • نحوه نمایش مقادیر اشاره گر How to display pointer values

  • آرایه ها، آدرس ها و اشاره گرها Arrays, addresses and pointers

  • آرایه ها، آدرس ها و اشاره گرها Arrays, addresses and pointers

  • غیر جهت چندگانه Multiple indirection

  • غیر جهت چندگانه Multiple indirection

  • غیر جهت چندگانه با اعداد صحیح Multiple indirection with integers

  • غیر جهت چندگانه با اعداد صحیح Multiple indirection with integers

  • غیر جهت چندگانه با رشته ها Multiple Indirection with strings

  • غیر جهت چندگانه با رشته ها Multiple Indirection with strings

  • آرگ های غیرمستقیم و خط فرمان Indirection and commandline args

  • آرگ های غیرمستقیم و خط فرمان Indirection and commandline args

  • اشاره گرهای عمومی Generic Pointers

  • اشاره گرهای عمومی Generic Pointers

  • تخصیص حافظه Allocating memory

  • Malloc و sizeof Malloc and sizeof

  • Malloc و sizeof Malloc and sizeof

  • عملکردهایی که باعث خطا یا هشدار می شوند Functions that cause errors or warnings

  • عملکردهایی که باعث خطا یا هشدار می شوند Functions that cause errors or warnings

  • calloc calloc

  • calloc calloc

  • رایگان free

  • تخصیص مجدد realloc

  • محاسبات اشاره گر Pointer arithmetic

  • محاسبات اشاره گر Pointer arithmetic

  • محاسبه شاخص آرایه Calculating an array index

  • اشاره گر به سازه ها Pointers to structs

  • اشاره گر به سازه ها Pointers to structs

  • تراز کردن نوع داده Data type alignment

  • تراز کردن نوع داده Data type alignment

  • تراز را روی مرزها تایپ کنید Type alignment on boundaries

  • تراز و محاسبات اشاره گر را تایپ کنید Type alignment and pointer arithmetic

  • اشکال زدایی برنامه های C Debugging C Programs

  • اشکال زدایی برنامه های C Debugging C Programs

  • اشکال زدایی چند جهت غیر مستقیم Debugging Multiple Indirection

  • آدرس ها و غیر جهت Addresses and Indirection

  • آدرس ها و غیر جهت Addresses and Indirection

  • یادداشت های مطالعه - مرحله دوم Study Notes – Step Two

لیست ها و ساختارهای داده Lists and data structures

  • لیست پیوندی چیست؟ What is a linked list?

  • لیست های تک پیوندی Singly linked lists

  • آزاد کردن یا عدم آزادی؟ To free or not to free?

  • راه اندازی یک لیست دارای پیوند دوگانه Initializing a doubly-linked list

  • صف ها Queues

  • پشته ها Stacks

  • هل دادن و ترکیدن Pushing and popping

  • کپی کردن یک لیست Copying a list

  • حذف یک عنصر از داخل یک لیست Removing an element from within a list

  • افزودن یک عنصر به لیست Adding an element into a list

  • نشانگرهای تابع Function pointers

  • اعلامیه های نشانگر تابع Function pointer declarations

  • یادداشت های مطالعه - مرحله سوم Study Notes – Step Three

لیست ها و ساختارهای داده Lists and data structures

  • آرایه ها و لیست ها Arrays and Lists

  • آرایه ها و لیست ها Arrays and Lists

  • لیست پیوندی چیست؟ What is a linked list?

  • لیست های تک پیوندی Singly linked lists

  • آزاد کردن یا عدم آزادی؟ To free or not to free?

  • لیست های دارای پیوند دوگانه Doubly linked lists

  • لیست های دارای پیوند دوگانه Doubly linked lists

  • برنامه نویسی یک لیست با پیوند دوگانه Programming a doubly-linked List

  • برنامه نویسی یک لیست با پیوند دوگانه Programming a doubly-linked List

  • راه اندازی یک لیست دارای پیوند دوگانه Initializing a doubly-linked list

  • پیاده سازی یک لیست با پیوند دوگانه Implementing a doubly linked list

  • پیاده سازی یک لیست با پیوند دوگانه Implementing a doubly linked list

  • صف چیست؟ What is a queue?

  • صف چیست؟ What is a queue?

  • صف ها Queues

  • پشته چیست؟ What is a stack?

  • پشته چیست؟ What is a stack?

  • پشته ها Stacks

  • هل دادن و ترکیدن Pushing and popping

  • محاسبه طول لیست Calculating the length of list

  • محاسبه طول لیست Calculating the length of list

  • کپی کردن یک لیست Copying a list

  • حذف یک عنصر از داخل یک لیست Removing an element from within a list

  • افزودن یک عنصر به لیست Adding an element into a list

  • نشانگرهای تابع Function pointers

  • اعلامیه های نشانگر تابع Function pointer declarations

  • آرایه ای از نشانگرهای تابع An array of function pointers

  • آرایه ای از نشانگرهای تابع An array of function pointers

  • فهرست ها و ساختارهای داده Lists and Data Structures

  • فهرست ها و ساختارهای داده Lists and Data Structures

  • یادداشت های مطالعه - مرحله سوم Study Notes – Step Three

مشکلات رایج اشاره گر Common Pointer Problems

  • چرا اشاره گرها مشکل ایجاد می کنند؟ Why do pointers cause problems?

  • نگاهی عمیق تر به کپی های عمیق و کم عمق A deeper look at deep and shallow copies

  • نشت های حافظه Memory leaks

  • عدم ارجاع به یک اشاره گر تهی Dereferencing a null pointer

  • و در نهایت... And finally...

مشکلات رایج اشاره گر Common Pointer Problems

  • چرا اشاره گرها مشکل ایجاد می کنند؟ Why do pointers cause problems?

  • کپی های عمیق و کم عمق Deep and shallow copies

  • کپی های عمیق و کم عمق Deep and shallow copies

  • نگاهی عمیق تر به کپی های عمیق و کم عمق A deeper look at deep and shallow copies

  • تخصیص حافظه نادرست Incorrect memory allocation

  • تخصیص حافظه نادرست Incorrect memory allocation

  • اشاره گر ریخته گری Casting pointers

  • اشاره گر ریخته گری Casting pointers

  • گچ گیری های نادرست Incorrect casts

  • گچ گیری های نادرست Incorrect casts

  • آزاد کردن حافظه از قبل آزاد شده Freeing already freed memory

  • آزاد کردن حافظه از قبل آزاد شده Freeing already freed memory

  • نشت های حافظه Memory leaks

  • استفاده از حافظه آزاد شده Using freed memory

  • استفاده از حافظه آزاد شده Using freed memory

  • اشاره گر خارج از محدوده Pointers out of scope

  • اشاره گر خارج از محدوده Pointers out of scope

  • عدم ارجاع به یک اشاره گر تهی Dereferencing a null pointer

  • مشکلات رایج اشاره گر Common pointer problems

  • مشکلات رایج اشاره گر Common pointer problems

  • یادداشت های مطالعه - مرحله چهارم Study Notes – Step Four

  • یادداشت های مطالعه - مرحله چهارم Study Notes – Step Four

  • و در نهایت... And finally...

نمایش نظرات

آموزش برنامه نویسی پیشرفته C: اشاره گر
جزییات دوره
4 hours
65
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
14,559
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Huw Collingbourne Huw Collingbourne

مدیر فناوری، نرم افزار SapphireSteel