آموزش کلاس پیشرفته برنامه نویسی C: اشاره گرها و حافظه در C

Advanced C Programming Masterclass: Pointers & Memory in C

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: مفاهیم پیشرفته در زبان C - کلاس کارشناسی ارشد اشاره گرها، آدرس دهی حافظه، برنامه نویسی سطح پایین، آماده سازی C تعبیه شده مقدمه ای برای اشاره گرها برای مبتدیان اعلامیه اشاره گرها، راه اندازی و استفاده از نشانگرها عدم ارجاع نشانگرهای غیرمستقیم چندگانه حسابی "عمومی" تابع "realloc" و "مسائل" تابع "رایگان" نشانگرهای آویزان ابزار نشت حافظه - نشانگرهای Valgrind عملگر حسابی "sizeof" آرایه‌ها و اشاره‌گرها رشته‌ها و اشاره‌گرها چند راز رشته‌ها با استفاده از نشانگرها تابع اشاره‌گرها آرایه‌های اشاره‌گر به توابع پیشها: دانش زبان برنامه نویسی C - به طور ایده آل دوره "برنامه نویسی C برای مبتدیان" را در Udemy A کامپیوتر با ویندوز، لینوکس یا سیستم عامل مک حداقل 4 گیگابایت رم (توصیه می شود) گذرانده باشم.

مقدمه

زبان برنامه نویسی C همچنان یکی از محبوب ترین و پرکاربردترین زبان ها در سال 2022 است.

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

- امنیت سایبری.

- شهرهای هوشمند خانه های هوشمند.

- هواپیماهای بدون سرنشین.

- و به ویژه در سیستم‌های جاسازی شده که در آن سنسورها و میکروکنترلرها دارید.


در این دوره چه چیزی یاد خواهید گرفت؟

یک عبارت "قدیمی" وجود دارد که می گوید "برای تبدیل شدن به یک متخصص در C - باید به اشاره گرها تسلط داشته باشید".

یکی از اهداف اصلی این دوره طراحی شده است تا دانش اولیه شما در مورد اشاره گرها (یکی از مهمترین موضوعات) را به سطح بعدی برساند. هدف این است که مهارت‌های اساسی را که تاکنون در برنامه‌نویسی C کسب کرده‌اید، به دست آورید و این دانش را به سطح کاملاً جدیدی برسانید.

ما نشانگرها، آدرس دهی حافظه، اشاره گرها به توابع، مفاهیم پیشرفته ساختارها و تخصیص حافظه پویا و موارد دیگر را پوشش خواهیم داد.

زیبایی این دوره در این است که به طور مرتب با مطالب جدید به روز می شود. و مطالبی که این روزها به دوره اضافه می شود شامل اطلاعات زیادی در برنامه نویسی سطح پایین (بیت ها و بایت ها)، آماده سازی برای استفاده از Embedded C در سیستم های جاسازی شده و سایر موضوعات بسیار مهم برای نسل بعدی مهندسان است./p>

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

همچنین، یک بخش اختصاصی کامل در مورد نحوه استفاده از دیباگر و فرآیند اشکال زدایی که ممکن است در توسعه برنامه های آینده به شما کمک زیادی کند، دریافت خواهید کرد.

پس از تکمیل این دوره، مهارت ها و دانش زیادی به دست خواهید آورد که ممکن است شانس شما را برای به دست آوردن موقعیت شغلی به عنوان یک برنامه نویس C و همچنین افزایش شانس خود برای قبولی در امتحان (اگر هنوز دانشجو هستید) افزایش دهد.


تفاوت این دوره چیست؟

ولاد بودنیتسکی مربی شما برای این دوره خواهد بود.

او سالها تجربه کار به عنوان یک توسعه دهنده نرم افزار (همچنین با سیستم های پیچیده توسعه یافته به زبان C) دارد. و همچنین 4 سال تجربه تدریس برنامه نویسی C برای مبتدیان و برنامه نویسی پیشرفته C در کالج.

بنابراین در این مورد خوش شانس بودید زیرا دانشی را از یک توسعه دهنده نرم افزار عملی و مربی با تجربه دریافت خواهید کرد.

موضوع دستچین شده، مختصر و مستقیمی را دریافت خواهید کرد که از نحوه آموزش این اشاره گرهای پیچیده شگفت زده خواهید شد.

این دوره همچنین با تمرین‌های مشخص، چالش‌ها و ویدیوهای راه‌حل کامل راهنمایی می‌شود - که به شما در تمرین مواد کمک می‌کند.


این دوره برای چه کسانی است؟

اولاً، این دوره برای "مبتدیان مطلق" نیست و لازم است حداقل دانش اولیه برنامه نویسی را داشته باشید. فرض بر این است که شما مقداری از اصول زبان C دارید - ترجیحاً دوره "برنامه نویسی C برای مبتدیان" ما (اینجا در Udemy) را گذرانده باشید.

این دوره هم برای دانشجویان کالج و هم برای فارغ التحصیلانی که نیاز به یادگیری و درک عمیق نکات دارند عالی است.

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


آیا هنوز شک دارید؟

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


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

خوش آمدید! Welcome Aboard!

  • در مورد دوره About the course

اشاره گر - مقدمه ای بر مبانی Pointers - Introduction to Basics

  • مقدمه ای بر اشاره گر + تجسم عمومی Introduction to Pointers + General Visualization

  • چرا از اشاره گر استفاده می کنیم؟ [دلایل و انگیزه] Why using Pointers? [Reasons & Motivation]

  • یکی دیگر از دلایل و انگیزه های استفاده از اشاره گرها Another reasons and motivation behind the usage of pointers

  • اعلامیه و استفاده از اشاره گرها Declaration & Usage of Pointers

  • راه اندازی اشاره گرها Pointers Initialization

  • رفرنس کوتاه Short Dereference

  • چالش شماره 1 - چاپ ارزش و آدرس یک متغیر Challenge #1 - Printing Value & Address of a Variable

  • چالش شماره 2 - حدس زدن خروجی Challenge #2 - Guessing the Output

  • راهنمای انحصاری پاس با مرجع Exclusive Pass By Reference Guide

  • خلاصه سریع Quick Summary

نشانگرها حسابی و عملگر "sizeof". Pointers Arithmetic & “sizeof” operator

  • اشاره گرها مقدمه حسابی Pointers Arithmetic Introduction

  • مثال های حسابی اشاره گر Pointers Arithmetic Examples

  • قوانین - خلاصه Rules - Summary

  • Pointers Arithmetic - تمرینات DIY Pointers Arithmetic - DIY Exercises

  • اپراتور "sizeof" - مقدمه The "sizeof" Operator - Introduction

  • اپراتور "sizeof" - تمرین پایه The "sizeof" Operator - Basic Practice

  • "sizeof" و آرایه های استاتیک "sizeof" & Static Arrays

  • "اندازه" و اشاره گرها "sizeof" & Pointers

مفهوم اشاره گر و فراتر از آن Pointers Concept and Beyond

  • تمرین - تابع تعویض Exercise - Swap Function

  • نقطه عطف شماره 1 - عملکرد مبادله واقعی خود را توسعه دهید! Milestone #1 - Develop Your Real Swap Function!

  • نقطه عطف شماره 1 - راه حل Milestone #1 - Solution

  • چند جهت غیر مستقیم Multiple Indirection

  • اشاره گر عمومی (ستاره خالی) - "void *" چیست؟ [اشاره گر جهانی عمومی] Generic Pointer (void star) - What is “void *”? [Generic Universal Pointer]

  • عملکرد تعویض عمومی (شامل عملکرد "memcpy") Generic Swap Function (including "memcpy" function)

آرایه ها و اشاره گرها - تئوری و تمرین های عملی Arrays & Pointers - Theory & Practical Exercises

  • آرایه ها - نمایش حافظه Arrays - Memory Representation

  • ارسال یک آرایه به یک تابع Passing an Array to a Function

  • جستجو کنید که آیا یک عنصر در یک آرایه داده شده است Search if an Element is in a Given Array

  • چالش شماره 1 [سوال]: تابعی برای یافتن حداکثر مقدار یک آرایه و برگرداندن آن Challenge#1 [Question]: Function to Find Maximum Value of an Array and Return it

  • چالش شماره 1 [راه حل]: تابعی برای یافتن حداکثر مقدار یک آرایه و برگرداندن آن Challenge#1 [Solution]: Function to Find Maximum Value of an Array and Return it

  • چالش شماره 2 [سوال]: مقدار میانگین یک آرایه را محاسبه می کند (با استفاده از 2 تابع) Challenge #2 [Question]: Calculates the Average Value of an Array (using 2 func)

  • چالش شماره 2 [راه حل]: مقدار میانگین یک آرایه را محاسبه می کند (با استفاده از 2 تابع) Challenge #2 [Solution]: Calculates the Average Value of an Array (using 2 func)

  • توابع ورودی و چاپ - (مفید برای هر آرایه معین) Input & Print Functions - (useful for any given array)

  • چالش شماره 3 - یافتن و عبور از نشانگر - مقادیر "Min" و "Max" یک آرایه Challenge #3 - Finding and Passing by Pointer - “Min” & “Max” values of an array

  • چالش شماره 3.1 [اضافی] - تابعی برای به روز رسانی میانگین بر اساس مرجع Challenge #3.1 [Additional] - Function to Update the Average by Reference

  • چالش #3.1 [راه حل] - تابعی برای به روز رسانی میانگین بر اساس مرجع Challenge #3.1 [Solution] - Function to Update the Average by Reference

  • چالش شماره 4 - آیا آرایه دارای عنصری با همسایگان خوب است - سوال Challenge #4 - Does Array Has An Element With Good Neighbors - Question

  • چالش شماره 4 - آیا آرایه دارای عنصری با همسایگان خوب است - راه حل Challenge #4 - Does Array Has An Element With Good Neighbors - Solution

  • چالش شماره 5 - تابع برای پیدا کردن اینکه آیا آرایه مرتب شده است یا نه - سوال Challenge #5 - Function To Find If Array Is Sorted Or Not - Question

  • چالش شماره 5 - راه حل تکراری Challenge #5 - Iterative Solution

  • چالش شماره 5 - راه حل بازگشتی پیشرفته [استفاده از بازگشت و توابع] Challenge #5 - Advanced Recursive Solution [Using Recursion & Functions]

  • چالش شماره 6 - آرایه معکوس با استفاده از Pointers Arithmetic - Iter. & بازگشتی - Q. Challenge #6 -Reverse Array using Pointers Arithmetic - Iter. & Recursive - Q.

  • چالش شماره 6 - آرایه معکوس با استفاده از Pointers Arithmetic - Iter. & بازگشتی - S. Challenge #6 -Reverse Array using Pointers Arithmetic - Iter. & Recursive - S.

  • (نسخه قدیمی) - تمرین - آرایه معکوس با استفاده از محاسبه بازگشتی و اشاره گر (old version) - Exercise - Reverse Array Using Recursion And Pointer Arithmetic

  • چالش شماره 7 - شمارش و چاپ فرکانس هر عنصر آرایه - سوال Challenge #7 - Count and Print the Frequency of Each Array's Element - Question

  • چالش شماره 7 - شمارش و چاپ فرکانس هر عنصر آرایه - راه حل Challenge #7 - Count and Print the Frequency of Each Array's Element - Solution

  • چالش شماره 8 - عنصر "دومین کوچکترین" را پیدا و برگردانید - سوال Challenge #8 - Find & Return the "Second Smallest" Element - Question

  • چالش شماره 8 - عنصر "دومین کوچکترین" را پیدا و برگردانید - راه حل Challenge #8 - Find & Return the "Second Smallest" Element - Solution

  • چالش شماره 9 - یافتن 2 عنصر خاص در آرایه مرتب شده O(n^2) و O(n) - سوال Challenge #9 - Find 2 specific elements in Sorted Array O(n^2) & O(n) - Question

  • چالش شماره 9 - یافتن 2 عنصر خاص در آرایه مرتب شده O(n^2) و O(n) - راه حل Challenge #9 - Find 2 specific elements in Sorted Array O(n^2) & O(n) - Solution

  • چالش شماره 9 - یافتن 2 عنصر خاص - راه حل بهینه Challenge #9 - Find 2 specific elements - Optimized Solution

  • توجه! مشکل در برگرداندن یک آرایه استاتیک از یک تابع ATTENTION! Problem with Returning a Static Array from a Function

  • تمرین اضافی شماره 1 - بازگشت - آرایه اعداد صحیح یک پالیندروم است - سوال Extra Practice #1 - Recursion - is Array of Integers a Palindrome - Question

  • تمرین اضافی شماره 1 - بازگشت - آرایه اعداد صحیح یک پالیندروم است - راه حل Extra Practice #1 - Recursion - is Array of Integers a Palindrome - Solution

  • تمرین اضافی شماره 2 - تبادل علائم آرایه بازگشتی - سوال Extra Practice #2 - Exchanging Signs Array Recursively - Question

  • تمرین اضافی شماره 2 - آرایه تبادل علائم - راه حل Extra Practice #2 - Exchanging Signs Array - Solution

  • تمرین اضافی شماره 3 - حداکثر 2 عنصر مجاور (با استفاده از نشانگرها) - سوال Extra Practice #3 - Maximum of 2 Adjacent Elements (using pointers) - Question

  • تمرین اضافی شماره 3 - حداکثر 2 عنصر مجاور (با استفاده از نشانگرها) - راه حل Extra Practice #3 - Maximum of 2 Adjacent Elements (using pointers) - Solution

  • تمرین اضافی شماره 4 - چاپ عناصر آرایه با استفاده از اشاره گرها در C - سوال Extra Practice #4 - Print Array Elements using Pointers in C - Question

  • تمرین اضافی شماره 4 - چاپ عناصر آرایه با استفاده از اشاره گرها در C - Solution Extra Practice #4 - Print Array Elements using Pointers in C - Solution

  • تمرین اضافی شماره 5 - به صورت بازگشتی با استفاده از اشاره گرها و توابع - یافتن میانگین آرایه Extra Practice #5 - Recursively using Pointers & Functions - Find Array Average

  • تمرین اضافی شماره 5 - به صورت بازگشتی با استفاده از اشاره گرها و توابع - یافتن میانگین - حل. Extra Practice #5 - Recursively using Pointers & Functions - Find Average - Sol.

  • تمرین اضافی شماره 6 - قطعات عناصر مجاور مرتب شده در آرایه نقطه شناور - Q. Extra Practice #6 - Adjacent Elements Parts Sorted in Floating Point Array - Q.

  • تمرین اضافی شماره 6 - قطعات عناصر مجاور مرتب شده در آرایه نقطه شناور - S. Extra Practice #6 - Adjacent Elements Parts Sorted in Floating Point Array - S.

  • تمرین اضافی شماره 7 - چاپ شماره به صورت باینری با استفاده از تابع بازگشت - سوال Extra Practice #7 - Print Number in Binary using Recursion Function - Question

  • تمرین اضافی شماره 7 - چاپ شماره به صورت باینری با استفاده از تابع بازگشت - راه حل Extra Practice #7 - Print Number in Binary using Recursion Function - Solution

تمرین های تعویض آرایه ها - سوالات متوسط ​​تا تخصصی! Arrays Swapping Exercises - Intermediate to Expert Questions!

  • تعویض در پیچیدگی O(n). Swapping in O(n) Complexity

  • تعویض در پیچیدگی O(1). Swapping in O(1) Complexity

  • SwapArray(O1) - تجسم بیشتر و شفاف سازی اضافی - قسمت 1 SwapArray(O1) - Further Visualization & Additional Clarification - part 1

  • SwapArray(O1) - تجسم بیشتر و شفاف سازی اضافی - قسمت 2 SwapArray(O1) - Further Visualization & Additional Clarification - part 2

تخصیص حافظه پویا Dynamic Memory Allocation

  • DMA چیست و چرا ممکن است به آن نیاز داشته باشیم؟ What is DMA and why we may need it?

  • تابع "malloc". “malloc" function

  • چالش شماره 1 - ایجاد و برگرداندن یک آرایه تخصیص یافته پویا از یک Func Challenge #1 - Creating and Returning a Dynamically Allocated Array from a Func

  • چالش شماره 2 - چاپ آرایه به صورت پویا Challenge #2 - Print Dynamically Allocated Array

  • تابع "calloc". “calloc” function

  • عملکرد "رایگان". “free” function

  • اشاره گر آویزان Dangling Pointer

  • پیدا کردن نشت حافظه [Valgrind] Finding Memory Leakages [Valgrind]

  • تابع "realloc". “realloc” function

  • مسائل "realloc". “realloc” issues

  • "realloc" - نمونه کد عملی "realloc" - practical code example

  • پیاده سازی "عملکرد جهانی realloc" خودتان - سوال Implementing your own “universal realloc function” - Question

  • پیاده سازی "عملکرد جهانی realloc" خود - راه حل شماره 1 Implementing your own “universal realloc function” - Solution #1

  • پیاده سازی "عملکرد جهانی realloc" خود - راه حل شماره 2 - با استفاده از memcpy Implementing your own “universal realloc function” - Solution #2 - using memcpy

  • جابجایی قابل تنظیم + عملکرد - سوال Adjustable Reallocation + Performance - Question

  • تخصیص مجدد قابل تنظیم + عملکرد - توضیح و راه حل Adjustable Reallocation + Performance - Explanation & Solution

  • سوال مهم - ایجاد و ارسال آرایه 1 بعدی با استفاده از اشاره گر به اشاره گر! IMPORTANT Question - Create and Pass 1D Array using Pointer to Pointer!

  • راه حل مهم - ایجاد و ارسال آرایه 1 بعدی با استفاده از اشاره گر به اشاره گر! IMPORTANT Solution - Create and Pass 1D Array using Pointer to Pointer!

تمرینات پیشرفته - اشاره گر و DMA Advanced Exercises - Pointers & DMA

  • تمرین شماره 1 - ایجاد یک "آرایه جدید" بدون موارد تکراری Exercise #1 - Creating a “new array” with NO DUPLICATES

  • تمرین شماره 2 - تقسیم "آرایه منبع" به آرایه های ODD و EVEN Exercise #2 - Splitting “source array” into ODD and EVEN arrays

  • تمرین شماره 3 - تخصیص آرایه های "حروف کوچک" و "حروف بزرگ". Exercise #3 - “Lower Case” & “Upper Case” arrays allocation

  • پیشرفته: تابع درج جهانی کاربردی - سوال Advanced: Practical Universal Insert Function - Question

  • پیشرفته: تابع درج جهانی عملی - راه حل Advanced: Practical Universal Insert Function - Solution

  • پیشرفته: عملی عملکرد حذف جهانی - سوال Advanced: Practical Universal Remove Function - Question

  • پیشرفته: عملی عملکرد حذف جهانی - راه حل Advanced: Practical Universal Remove Function - Solution

  • سوال - یک آرایه را کپی کنید و یک آرایه جدید را با مرجع ارسال کنید Question - Copy an Array and pass a new one by Reference

  • راه حل - یک آرایه را کپی کنید و یک آرایه جدید را با مرجع ارسال کنید Solution - Copy an Array and pass a new one by Reference

آرایه های دوبعدی تخصیص یافته پویا (ماتریس) 2D Dynamically Allocated Arrays (Matrix)

  • ماتریس پویا - مقدمه Dynamic Matrix - Introduction

  • آرایه های اشاره گر - مقدمه و استفاده Arrays of Pointers - Introduction & Usage

  • استفاده از آرایه های اشاره گر در مقابل آرایه های استاتیک دو بعدی Usage of Arrays of Pointers VS Static 2D Arrays

  • ایجاد یک آرایه دو بعدی کاملا پویا Creating a Totally Dynamically 2D Array

  • در حال توسعه تابع "allocate2DMatrix". Developing the “allocate2DMatrix” function

  • در حال توسعه عملکرد "print2DMatrix". Developing the “print2DMatrix” function

  • توسعه تابع "freeMatrix". Developing the “freeMatrix” function

  • سوالات تمرینی - آرایه های دینامیکی دو بعدی - سوال Practice Questions - 2D Dynamic Arrays - Question

  • 2 ردیف را در آرایه پویا دوبعدی تعویض کنید - با استفاده از رویکرد جهانی (راه حل) Swap 2 rows in 2D Dynamic Array - using Universal Approach (solution)

  • 2 ستون را در آرایه دینامیک دو بعدی - برای آرایه های عدد صحیح دو بعدی عوض کنید Swap 2 columns in 2D Dynamic Array - for 2D Integer Arrays

  • سوال - 2 تابع - توابع ماتریس مثلث پایین و بالا Question - 2 functions - lower and upper triangle matrix functions

  • راه حل - 2 تابع - ایجاد ماتریس مثلث پایین و بالا Solution - 2 functions - lower and upper triangle matrix creation

  • سوال - برای چاپ دو تابع بنویسید - ماتریس مثلث پایین و بالایی Question - write two functions to PRINT - lower and upper triangle matrix

  • راه حل - 2 تابع برای چاپ - ماتریس مثلث پایین و بالایی Solution - 2 functions to print - lower and upper triangle matrix

  • متوسط: تخصیص ماتریس دو بعدی و عبور تابع مرجع - سوال Intermediate: 2D Matrix Allocation and Passing by Reference Function - Question

  • متوسط: تخصیص ماتریس دو بعدی و عبور از تابع مرجع - راه حل Intermediate: 2D Matrix Allocation and Passing by Reference Function - Solution

رشته ها و اشاره گرها Strings & Pointers

  • برگرداندن یک رشته از یک تابع - مثال با "strConcat" Returning a string from a function - example with "strConcat"

  • **انحصاری** سخنرانی اضافی در مورد رشته ها و اشاره گرها **Exclusive** Extra Lecture on Strings & Pointers

اجرای توابع کتابخانه رشته ای - با استفاده از اشاره گر String Library Functions Implementation - Using Pointers

  • اجرای وظایف کتابخانه - مقدمه Library Functions Implementation - Introduction

  • یافتن طول رشته - پیاده سازی در C (با استفاده از نشانگرها) Finding String Length - Implementation in C (using pointers)

  • الحاق 2 رشته - پیاده سازی در C (با استفاده از اشاره گر) Concatenating 2 Strings - Implementation in C (using pointers)

  • کپی کردن یک رشته در رشته دیگر - پیاده سازی در C (با استفاده از اشاره گر) Copying One String Into Another - Implementation in C (using pointers)

  • مقایسه 2 رشته - پیاده سازی در C (با استفاده از اشاره گر) Comparing 2 Strings - Implementation in C (using pointers)

اشکال زدایی و اشکال زدایی - بیایید مشکلات را دریابیم! Debugger & Debugging - let's find out the problems!

  • مقدمه ای بر اشکال زدایی Introduction to Debugging

  • اشکال زدایی و فرآیند اشکال زدایی - یادگیری اصول Debugger & Debugging Process - Learning the Basics

  • استفاده موثر از نقاط شکست Using Breakpoints Effectively

  • مشاهده نمایش حافظه در حالت Debugger. Viewing Memory Representation in a Debugger Mode.

  • اشکال زدایی و اشاره گر - نمایش حافظه آسان Debugging & Pointers - easy memory representation

  • حسابی آرایه ها و اشاره گرها (غواصی عمیق تر با فرآیند اشکال زدایی) Arrays & Pointers Arithmetic (diving deeper with the debugging process)

  • اشکال زدایی - رشته ها و ماتریس دو بعدی Debugging - Strings & 2D Matrix

ساختارها - مبانی و فراتر از آن Structs - Basics & Beyond

  • ایجاد آرایه از متغیرهای ساختاری به صورت ایستا Creating Arrays of Struct Variables in a Static Manner

  • آرایه ساختارهای تخصیص یافته به صورت پویا. Dynamically Allocated Array of Structs.

  • ارسال ساختارها به توابع بر اساس مقدار + به روز رسانی توسط اشاره گر Passing structs to functions by value + Updating by Pointer

  • ترکیب سازه ها Structs Composition

  • تمرین: 2 تابع برای تخصیص پویا آرایه ای از ساختارها - سوال Exercise: 2 functions to dynamically allocate an array of structs - Question

  • تمرین: 2 تابع برای تخصیص پویا یک آرایه از ساختارها - راه حل Exercise: 2 functions to dynamically allocate an array of structs - Solution

مقدمه ای بر معماری کامپیوتر و همترازی داده ها Introduction to Computer Architecture & Data Alignment

  • مقدمه ای بر حافظه، معماری و تراز Introduction to Memory, Architecture, and Alignment

  • Word & Architectures Word & Architectures

  • Word Addressable VS Byte Addressable Word Addressable VS Byte Addressable

  • هم ترازی متغیرها Variables Alignment

  • بررسی عملی آدرس متغیرها در حافظه در IDE Practical Checking Variables Addresses in Memory in IDE

تراز سازه ها Structs Alignment

  • مقدمه ای بر Padding (تراز کردن داده ها در ارتباط با سازه ها) Introduction to Padding (Data Alignment in Conjunction with Structs)

  • استفاده از حافظه متغیر ساختار عملی Practical Struct Variable Memory Utilization

  • مثال شماره 1 - استفاده از حافظه ساختاری و تراز داده ها (+padding) Example #1 - Struct Memory Utilization and Data Alignment (+padding)

  • مثال شماره 2 - سازماندهی مجدد ترتیب اعضا و تأثیر آن بر استفاده از حافظه Example #2 - Reorganizing Members Order and its Affect on Memory Utilization

  • تمرین شماره 1 - ساختارها، سازماندهی اعضا، تراز داده ها و حافظه - جستجو. Exercise #1 - Structs, Members Organization, Data Alignment and Memory - Quest.

  • تمرین شماره 1 - ساختارها، سازماندهی اعضا، همترازی داده ها و حافظه - Sol. Exercise #1 - Structs, Members Organization, Data Alignment and Memory - Sol.

  • افزودن Data Member به Struct بدون افزایش اندازه متغیر در حافظه Adding Data Member to Struct without Increasing the Size of a Variable in Memory

  • تمرین شماره 2 - ساختارها، سازماندهی اعضا، تراز داده ها و حافظه - جستجو. Exercise #2 - Structs, Members Organization, Data Alignment and Memory - Quest.

  • تمرین شماره 2 - ساختارها، سازماندهی اعضا، تراز داده ها و حافظه - Sol. Exercise #2 - Structs, Members Organization, Data Alignment and Memory - Sol.

  • تراز داده ها و padding با ترکیب سازه ها Data Alignment and Padding with Structs Composition

  • بسته بندی و بسته بندی محکم به داده های بدون تراز Tightly Packing & Packing to UnAligned Data

  • تست تمرین ترازبندی سازه ها Structs Alignment Practice Test

اشاره گر به توابع Pointers to Functions

  • نشانگرهای تابع - مقدمه Function Pointers - Introduction

  • مثال مشکل - انگیزه برای استفاده از نشانگرهای توابع Problem Example - Motivation to use Functions Pointers

  • اعلام اشاره گر به یک تابع Declaration of Pointer to a Function

  • مثال کدنویسی با اشاره گر به توابع Coding Example with Pointers to Functions

  • اشتباهات رایج هنگام استفاده از اشاره گر به یک تابع Common Mistakes when using a Pointer to a Function

  • آرایه ای از اشاره گرها به توابع An array of Pointers to Functions

فایل ها - محتوای پیشرفته Files - Advanced Content

  • 1. توابع برای کار و پیدا کردن مکان فایل 1. Functions for working and finding File's Location

  • موارد متداول در هنگام کار با فایل های متوالی (متن) Common things to note when working with Sequential (Textual) files

  • مقدمه ای بر فایل های ساختار یافته Introduction to Structured Files

  • نوشتن یک رکورد ساختار در یک فایل Writing a Structure Record to a File

  • نوشتن 2 نقطه خوانده شده از کاربر در یک فایل Writing 2 Points read from the user to a file

  • نوشتن آرایه ای از نقاط در یک فایل. Writing an array of points to a file.

  • یک نقطه خاص را در یک فایل جستجو کنید. خواندن. Search for a specific point in a file. Reading.

  • یک نقطه خاص در فایل را ویرایش کنید Edit a specific point in the file

Enums Enums

  • Enums - قسمت 1 Enums - Part 1

  • Enum - قسمت 2 Enum - Part 2

مسترکلاس ثابت و اشاره گر Constants & Pointers Masterclass

  • ثابت ها - معرفی عمومی + استفاده Constants - General Intro + Usage

  • ثابت ها - چرا و وقتی + مثال Constants - Why & When + Example

آرایه های شمارش - قسمت شماره 2 - تابع تمرینات را تمرین کنید Counting Arrays - Part #2 - Practice Exercises Function

  • تابع - FreqAsValue - سوال Function - FreqAsValue - Question

  • تابع - FreqAsValue - راه حل Function - FreqAsValue - Solution

  • تابع - FindDominantValue - سوال Function - FindDominantValue - Question

  • تابع - FindDominantValue - راه حل Function - FindDominantValue - Solution

  • تابع - FindSpecificValueMaxSum - سوال Function - FindSpecificValueMaxSum - Question

  • تابع - FindSpecificValueMaxSum - راه حل Function - FindSpecificValueMaxSum - Solution

  • تابع - FindLargestMissingValue - سوال Function - FindLargestMissingValue - Question

  • تابع - FindLargestMissingValue - راه حل Function - FindLargestMissingValue - Solution

  • تابع - areAllCharactersIncluded - سوال Function - areAllCharactersIncluded - Question

  • تابع - areAllCharactersIncluded - راه حل Function - areAllCharactersIncluded - Solution

اختیاری: مقدمه ای بر عملیات بیتی OPTIONAL: Introduction to Bitwise Operations

  • مقدمه ای بر Bitwise Operations + NOT operator Introduction to Bitwise Operations + NOT operator

  • عملگر بیتی AND The AND bitwise operator

  • عملگر بیتی OR The OR bitwise operator

  • عملگر بیتی XOR و ارتباط آن با TOGGLE The XOR bitwise operator and its relation to TOGGLE

  • از NOT، AND، OR، XOR در زبان برنامه نویسی خود استفاده کنید Using NOT, AND, OR, XOR in your own programming language

  • نمایش در CC++ - به صورت بیتی NOT، AND، OR، XOR Demonstration in CC++ - Bitwise NOT, AND, OR, XOR

  • مقدمه ای بر بیت ماسک Introduction to Bit Masks

  • پیدا کردن سمت راست ترین رقم با استفاده از یک پوشش بیتی AND Finding the rightmost digit using a masking bitwise AND

  • یافتن سمت چپ ترین رقم با استفاده از یک پوشش بیتی AND Finding the leftmost digit using a masking bitwise AND

  • یافتن ترکیب خاصی از بیت ها در یک مقدار - با استفاده از پوشش بیت Finding specific combinations of bits in a value - using bit masking

  • معرفی فرآیند پوشش برای تنظیم بیت های خاص با استفاده از عملگر بیتی OR Introducing the Masking Process to Set Specific bits using bitwise OR operator

  • تمرین تنظیم بیت های خاص Practicing Setting specific bits

  • فرآیند پوشش برای خاموش کردن بیت های خاص با استفاده از عملگر بیتی AND Masking Process to Turn-Off Specific Bits using the AND bitwise operator

  • 14. معرفی عملگر XOR برای Toggle Functionality 14. Introducing the XOR operator for Toggle Functionality

  • عملگرهای Shift Left و Shift Right Shift Left & Shift Right Operators

  • نمایش یک عدد به صورت باینری (با استفاده از عملگرهای Bitwise Shift) [پیاده سازی] Displaying a number in binary (using Bitwise Shift Operators) [Implementation]

  • پیاده سازی Bitwise Right Rotation Implementing Bitwise Right Rotation

  • پیاده سازی Bitwise Left Rotation Implementing Bitwise Left Rotation

  • سوال سطح مصاحبه: تمرین - تعویض با استفاده از عملیات بیتی را پیاده سازی کنید Interview Level Question: Exercise - Implement Swap using Bitwise Operations

  • راه حل - پیاده سازی Swap با استفاده از عملیات بیتی - بدون THIRD VARIABLE Solution - Implement Swap using Bitwise Operations - without THIRD VARIABLE

اختیاری: الگوریتم های اساسی OPTIONAL: Basic Algorithms

  • عملکرد ادغام - مقدمه کلی Merge Functionality - General Introduction

  • عملکرد ادغام در C Merge Functionality in C

  • Merge In Place - مقدمه کلی - پایه و اساس Merge Sort Merge In Place - General Introduction - Basis for Merge Sort

  • Merge In Place - پیاده سازی عملی - قسمت A Merge In Place - Practical Implementation - Part A

تبریک می گویم! شما آن را ساخته اید! بعدش چی؟ Congratulations! You've made it! What's next?

  • سخنرانی پاداش Bonus Lecture

نمایش نظرات

نظری ارسال نشده است.

آموزش کلاس پیشرفته برنامه نویسی C: اشاره گرها و حافظه در C
خرید اشتراک و دانلود خرید تکی و دانلود | 360,000 تومان (6 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 3 دوره است و 3 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
31 hours
202
Udemy (یودمی) udemy-small
09 اسفند 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
6,552
4.5 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Vlad Budnitski Vlad Budnitski

مهندس سیستم و ارتباطات خوش آمدید ، نام من ولاد است و من در Udemy استاد شما خواهم بود! من لیسانس دارم در علوم کامپیوتر و کارشناسی در مهندسی الکترونیک. همچنین ، من تجربه عملی کار به عنوان مهندس در یک شرکت بزرگ مانند یک شرکت Intel را دارم و همچنین چند شرکت Start-Ups شامل توسعه IoT و Cyber-Systems و ساخت برخی پروژه های جالب با شرکت های مختلف (مانند Wacom) . من احساس اشتیاق و اشتیاق می کنم تا دانش خود را به بهترین وجهی که می توانم به اشتراک بگذارم و به شما کمک کنم موضوعات برنامه نویسی را به بهترین و آسان ترین روش یاد بگیرید. بنابراین امیدوارم که برای آغاز سفر ما آماده باشید - بیایید مهارت های برنامه نویسی خود را افزایش دهیم!

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

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