اشاره‌گرها در سی پلاس پلاس ( Pointers in Cpp)

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

اشاره‌گرها در سی پلاس پلاس

همانطور که می‌دانید هر متغیر در سی پلاس پلاس فضایی در حافظه را می‌گیرد. برای دسترسی به آدرس متغیر از & استفاده می‌کنیم. برای درک بهتر این مطلب کد زیر را بررسی کنید:

همانطور که می‌بینید دو متغیر var1 و var2 را ساختیم و آدرس حافظه آنها را چاپ کردیم. خروجی کد بالا مشابه زیر می‌باشد:

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

Type همان نوع متغیر ماست که می‌تواند int، Float یا … باشد. بعد از type یک * (ستاره) می‌آید که نشان دهنده اشاره‌گر است. در آخر نیز اسم اشاره‌گر می‌آید. برای درک بهتر مطالب بالا چند مثال در این مورد می‌زنیم.

مثال اول اشاره‌گرها

در این مثال یک متغیر را تعریف سپس یک اشاره گر را ساخته و آدرس متغیر را به اشاره‌گر میدهیم. کد این مثال به صورت زیر می‌باشد:

کد بالا سه خروجی دارد اولی مقدار متغیر var است و دومی مقدار اشاره‌گر ip است. سومین خروجی به ما نحوه دسترسی محتوای حافظه با توجه به داشتن اشاره‌گر آن را به ما نشان می‌دهد پس در حقیقت سومین خروجی همان مقداری است که در آدرس حافظه اشاره گر ذخیره شده است (همان مقدار var). خروجی کد بالا به صورت زیر است:

اشاره‌گرها در سی پلاس پلاس

مثال دوم اشاره‌گرها

این مثال عملیات جمع اشاره‌گر در سی پلاس پلاس را توضیح می‌دهد. ابتدا یک آرایه و یک متغیر (Max) ساخته، اشاره‌گری به ابتدای آرایه اشاره می‌کند. هدف چاپ عناصر آرایه با کمک اشاره گر است. کد این مثال به صورت زیر است:

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

اشاره‌گرها در سی پلاس پلاس

پسورد: www.codegate.ir

 

دسته : آموزش ++c, زبان c++

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz