دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۹
  • مرداد

جلسه ۲۸ : اشاره گر ها در ++C

  • دسته‌بندی‌ها :
جلسه ۲۸ : اشاره گر ها در ++C
    • جزئیات
    • نوع محتواآموزش تصویری

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش ++C در خدمت شما دوستان هستیم . در بخش قبلی با آموزش الگو ها در ++C آشنا شدید، در این جلسه قصد داریم تا با اشاره گر ها در ++C یا Pointer در ++c آشنا شویم.

       

      اشاره گر ها (Pointer) ویژگی های قدرتمند زبان ++C هستند که باعث تفاوت زبان سی پلاس پلاس با زبان های دیگر مانند Java و Python می شود.

      اشاره گر ها در ++C برای دسترسی به حافظه و تغییر مقادیر با استفاده از آدرس آن ها به کار می روند.

      اشاره گر ها در ++C

      آدرس در ++C

      برای درک اشاره گر ها ابتدا باید بدانید تا داده ها چگونه در کامپیوتر ذخیره می شوند.

      هر متغیری را که در برنامه تان ایجاد می کنید، یک مکان در حافظه کامپیوتر به آن اختصاص داده می شود.

      مقادیر متغیر ها در واقع در مکان اختصاص داده شده ذخیره می شوند.

      برای دانستن اینکه داده ها در کجا ذخیره شده اند، ++C عملگر & را در اختیار ما گذاشته است.
      عملگر & آدرس اشغال شده توسط هر متغیر را به ما می دهد.

      برای مثال آدرس متغیر var را با var& بدست می آوریم.

      مثال:

      مثال : 

      خروجی:

      مثال : 

      توجه داشته باشید که شما ممکن است نتیجه یکسانی با آنچه که من گرفتم را نداشته باشید.

      علامت ۰x نشان دهنده شانزده شانزدهی بودن آدرس می باشد.

       

      متغیر اشاره گر

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

      متغیر اشاره گر متغیری است که به آدرس مشخصی در حافظه اشاره می کند که آن آدرس در واقع به متغیر دیگری اختصاص یافته است. (به صورت ساده یعنی یک متغیر اشاره گر که می توانیم آن را تنها اشاره گر بنامیم، به متغیر دیگری اشاره می کند)

      نحوه تعریف متغیر های اشاره گر در ++C

      مثال : 

      دستور بالا یک متغیر اشاره گر به نام p تعریف می کنیم که آدرس حافظه را در خودش نگه می دارد.

      عملگر * به این معنی است که این متغیر، یک اشاره گر است.

      در اینجا اشاره گر p از نوع int می باشد که یعنی آدرس متغیر هایی از نوع int را در خود ذخیره می کند.

       

      تفاوت بین عملگر های * و &

      عملگر ارجاع & برای گرفتن آدرس یک متغیر استفاده می شود.

      برای گرفتن مقدار ذخیره شده در آدرس، از عملگر * استفاده می کنیم.

      برای مثال اگر متغیر num در آدرس حافظه ۰x123 ذخیره شده باشد و حاوی عدد ۵ باشد، عملگر & مقدار ۰x123 و عملگر * مقدار ۵ را بر می گرداند.

       

      مثال:

      مثال : 

      خروجی به صوذت زیر می باشد:

      مثال : 

       

      آموزش اشاره گر ها در C++

      توضیحات کد:

      • وقتی ;c = 5 ،مقدار ۵ در آدرس متغیر c ذخیره می شود.
      • وقتی که ;pc = &c، اشاره گر pc آدرس متغیر c را نگه می دارد. و pc* مقدار آن یعنی ۵ را بر می گرداند.
      • وقتی که ;c = 11، به دلیل اینکه اشاره گر pc به متغیر c اشاره می کند، مقدار pc* نیز به ۱۱ تغییر پیدا می کند.
      • وقتی ;pc = 2*، محتوای آدرسی که pc به آن اشاره می کند به ۲ تغییر پیدا می کند. در نتیجه مقدار متغیر c به ۲ تغییر می کند

       

      اشتباهات رایج هنگام کار کردن با اشاره گر ها

      برخی از اشتباهات متداول هنگام کار اشاره گر ها به صورت زیر می باشد.

      متغیر c و اشاره گر pc مثال بالا را در نظر بگیرید.

      • ;pc = c، این دستور اشتباه است زیرا c یک آدرس نیست که بخواهد در اشاره گر ذخیره شود
      • ;pc = &c*، این دستور نیز اشتباه است زیرا pc* مقدار آدرس اشاره شده است اما c& آدرس متغیر می باشد
      • ;pc = &c، این دستور درست می باشد زیرا آدرس متغیر c در اشاره گر pc ذخیره شده است
      • ;pc = c* این دستور نیز درست است زیرا مقدار متغیر c در مقدار آدرس اشاره شده pc ذخیره شده است.

       

      جلسه اشاره گر ها در ++C نیز به پایان رسید.
      در جلسه بعد به مبحث اشاره گر ها و آرایه ها در ++C خواهیم پرداخت. با ما همراه باشید

      QR:  جلسه ۲۸ : اشاره گر ها در ++C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر
      2. تصویر کاربر
      3. تصویر کاربر